Java DATE解析

时间:2011-12-09 16:23:47

标签: java parsing

我对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();
        }
    }
}

3 个答案:

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