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