java日期格式 - GMT 0700(PDT)

时间:2013-08-28 16:33:20

标签: 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)");

2 个答案:

答案 0 :(得分:9)

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

更准确地说,采用SimpleDateFormat格式:

  • 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);

答案 1 :(得分:3)

这是Javadoc:

http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

对于此示例:Wed Aug 21 2013 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 + "...");
  }
}
  

示例输出:日期=星期二8月20日星期二23:00:00 PDT 2013 ...

Thanx到Arnaud Denoyelle上面的编辑!