java日期格式不正确

时间:2013-12-18 09:58:45

标签: java parsing date

我编写了以下代码来解析像“09-MAR-17”这样的简单日期:

    DateFormat df = new SimpleDateFormat("dd-MMM-yy");
    Date start = null;
    Date end = null;
    try {
        start = df.parse(data.get(i)[Columns.PACKAGESTART.ordinal()]);
        end = df.parse(data.get(i)[Columns.PACKAGEEND.ordinal()]);
    } catch (ParseException ex) {
        ex.printStackTrace();
    }

然而,这会引发以下异常:

java.text.ParseException: Unparseable date: "07-MAR-17"
    at java.text.DateFormat.parse(DateFormat.java:357)

然而我不知道为什么。 “dd-MMM-yy”是不正确的格式吗?

编辑:在netbeans中运行它会给我一个例外,在eclipse中运行完全相同的代码似乎有效。

2 个答案:

答案 0 :(得分:2)

我对此进行了一些实验,发现解析依赖于语言环境。例如," 07-MAY-17"将使用英语语言环境,但不适用于瑞典语语言环境(5月份命名为#34; maj")。我怀疑会发生类似事情。

答案 1 :(得分:1)

您需要对代码进行以下扩展才能解析字符串“MAR”(英语!):

DateFormat df = new SimpleDateFormat("dd-MMM-yy", Locale.US);

由于@SmallHacker认为解析时存在本地化问题。