Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java日期格式-GMT 0700(PDT)_Java_Simpledateformat - Fatal编程技术网

java日期格式-GMT 0700(PDT)

java日期格式-GMT 0700(PDT),java,simpledateformat,Java,Simpledateformat,这是我需要处理的日期格式 Wed Aug 21 2013 00:00:00 GMT-0700 (PDT) 但我不明白最后两部分是什么。GMT-0700的?应该是这样的吗 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)"); 不,它不是固定的。这是一个时区。您可以在日期格式中将其与Z匹配 更准确地说,格式如下: Z与-0700零件匹配 GMT是固定的。用一些引语来逃避它

这是我需要处理的日期格式

Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)
但我不明白最后两部分是什么。GMT-0700的
?应该是这样的吗

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT-0700' (z)");

不,它不是固定的。这是一个时区。您可以在日期格式中将其与
Z
匹配

更准确地说,格式如下:

  • Z
    -0700
    零件匹配
  • GMT
    是固定的。用一些引语来逃避它
  • z与
    PDT
    零件匹配。(PDT=太平洋昼时)
  • PDT周围的括号是固定的。用括号将其转义
您可以使用以下格式解析日期:

EEE MMM dd yyyy HH:mm:ss 'GMT'Z '('z')'
另一句话
Wed Aug
包含英文的日期和月份,因此您必须在SimpleDateFormat中使用英文区域设置,否则翻译将失败

new SimpleDateFormat("*format*", Locale.ENGLISH);
以下是Javadoc:

对于以下示例:
2013年8月21日星期三00:00:00 GMT-0700(PDT)
,您需要以下格式:

import java.text.SimpleDateFormat;
import java.util.Date;

public class JavaDate {

  public static void main (String[] args) throws Exception {

    String s= "Wed Aug 21 2013 00:00:00 GMT-0700 (PDT)";
    SimpleDateFormat sdf = 
      new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'z '('Z')'");
    Date d = sdf.parse (s);
    System.out.println ("Date=" + d + "...");
  }
}
输出示例:日期=2013年8月20日星期二23:00:00 PDT


谢谢阿诺·德诺耶尔的编辑

等等,我不明白。根据文档:,
z
匹配
GMT
部分,
z
匹配
-0700
部分。根据该文档,
z
可以匹配
GMT-08:00
,而不是
GMT-0800
。这就是为什么必须手动隔离
GMT
零件的原因
z
也可以单独捕获
GMT
,但它将被视为
GMT+00:00
。因此,使用另一个
Z
GMT+00:00-0700
=>2个时区)是没有意义的。对不起,这是一个输入错误。我的意思是
z
匹配
PDT
,和
z
匹配
-0700
。我想你应该在这里切换
z
z
,对吗?对!(我编辑)事实上,这段代码是偶然产生的,我找到了原因:
z
一般时区
,但javadoc告诉我们,对于解析,简单时区是可以接受的,反之亦然。