我对java.util.Date
犯了一个愚蠢的问题。
我有这行代码,但我不明白为什么这个日期不能用这种格式解析。
public class TestTime {
public static void main(String[] args) {
final String DATE_FORMAT = "EEE MMM dd HH:mm:ss zzz yyyy";
String date = "Sat Dec 31 10:00:00 CET 2011";
SimpleDateFormat dFormat = new SimpleDateFormat(DATE_FORMAT);
Date lDate = null;
try {
lDate = dFormat.parse(date);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
答案 0 :(得分:10)
如果您的系统使用英语以外的语言环境,则需要使用此构造函数:
SimpleDateFormat(DATE_FORMAT,Locale.ENGLISH);
如果这不是问题,您应该使用相同的格式化程序格式化日期,并将输出与输入字符串进行比较。
答案 1 :(得分:5)
我没有看到任何错误。它为我执行没有错误,并返回:
Sat Dec 31 09:00:00 GMT 2011
答案 2 :(得分:1)
似乎是与语言环境相关的问题。
如果我设置了法语区域设置,则该模式不起作用。如果我在SimpleDateFormat构造函数中将Locale设置为US,它确实有效。
SimpleDateFormat dFormat = new SimpleDateFormat(DATE_FORMAT,Locale.US);