Java DATE解析

我有一个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(); } } } 

如果您的系统使用英语以外的语言环境,则需要使用此构造函数:

 SimpleDateFormat(DATE_FORMAT,Locale.ENGLISH); 

如果这不是问题,您应该使用相同的格式化程序格式化日期,并将输出与输入字符串进行比较。

我没有看到任何错误。 它为我执行没有错误,并返回:

 Sat Dec 31 09:00:00 GMT 2011 

似乎是与Locale相关的问题。

如果我设置了法语区域设置,则该模式不起作用。 如果我在SimpleDateFormat构造函数中将Locale设置为US,它确实有效。

SimpleDateFormat dFormat = new SimpleDateFormat(DATE_FORMAT,Locale.US);