有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

解析java错误的日期格式

我编写了以下代码来解析一个简单的日期,比如“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) 个答案

  1. # 1 楼答案

    要解析“MAR!”字符串(你需要按以下顺序解析代码)

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

    正如@SmallHacker所认为的,这是解析中的本地化问题

  2. # 2 楼答案

    我对此进行了一些实验,发现解析依赖于语言环境。例如,“07-MAY-17”将适用于英语地区,但不适用于瑞典语地区(5月名为“maj”)。我怀疑你也在经历类似的事情