这是我需要处理的日期格式
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)");
答案 0 :(得分:9)
不,这不是固定的。这是一个TimeZone。您可以在日期格式中将其与Z
匹配。
更准确地说,采用SimpleDateFormat格式:
Z
与-0700
部分匹配。GMT
已修复。用一些引号来逃避它。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上面的编辑!