解析日期不起作用

时间:2016-01-24 14:38:24

标签: java date parsing datetime

当我尝试将String转换为java.util.Date时,我遇到了问题。

我的日期格式如下: 2016年1月23日下午4:00:24 ,我想将该字符串转换为Date对象。所以,为了做到这一点,我使用 SimpleDateFormat ,根据javadoc,我使用的参数看起来不错: MMM dd yyyy aa。

但是当我运行我的代码时,我遇到了java.text.ParseException:Unparseable date:“2016年1月23日下午4:00:24”

可能是我的问题?

谢谢!

编辑:有问题的代码

String dateStr = "Jan 23 2016 4:00:24 PM";
SimpleDateFormat parserSDF = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa");
Date date = parserSDF.parse(dateStr);

2 个答案:

答案 0 :(得分:0)

此代码对我来说运行良好,并产生输出 Sat Jan 23 16:00:24 EST 2016

    String text = "Jan 23 2016 4:00:24 PM";
    SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa", Locale.US);
    try {
        System.out.println(sdf.parse(text));
    } catch (Exception e) {
        e.printStackTrace();
    }

答案 1 :(得分:0)

您的默认系统区域设置是什么?您可以使用Locale.getDefault()方法调用进行检查。我已经尝试过您的代码,使用默认的en_US语言环境可以正常使用。但我尝试使用另一个(我使用中文)并发现同样的错误。

尝试将SimpleDateFormat parserSDF = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa", Locale.US);与明确定义的区域设置

一起使用