java日期格式 – GMT 0700(PDT)
这是我需要处理的日期格式
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)");
不,这不是固定的。 这是一个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);
这是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 + "..."); } }
示例输出:日期= 2013年8月20日星期二23:00:00 PDT 2013 …
Thanx到Arnaud Denoyelle上面的编辑!