Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析日期不起作用_Java_Date_Parsing_Datetime - Fatal编程技术网

Java 解析日期不起作用

Java 解析日期不起作用,java,date,parsing,datetime,Java,Date,Parsing,Datetime,当我试图将字符串转换为java.util.Date时,遇到了一个问题 我的日期格式如下:2016年1月23日下午4:00:24,我想将该字符串转换为日期对象。因此,为了做到这一点,我使用了一个SimpleDataFormat,根据javadoc:MMM dd yyyy aa. 但当我运行代码时,我遇到了一个java.text.ParseException:无法解析的日期:“2016年1月23日下午4:00:24” 我有什么问题 谢谢 编辑:有问题的代码 String dateStr = "Jan

当我试图将字符串转换为java.util.Date时,遇到了一个问题

我的日期格式如下:2016年1月23日下午4:00:24,我想将该字符串转换为日期对象。因此,为了做到这一点,我使用了一个SimpleDataFormat,根据javadoc:MMM dd yyyy aa.

但当我运行代码时,我遇到了一个java.text.ParseException:无法解析的日期:“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);

此代码对我来说运行良好,并生成输出2016年1月23日星期六美国东部时间16:00:24

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

默认的系统语言环境是什么?您可以使用
Locale.getDefault()
method调用检查它。我已经尝试过你的代码,在默认的
en_US
locale下对我来说效果很好。但我试着用另一个(我用中文),发现了同样的错误


尝试使用
SimpleDateFormat parserSDF=newsimpledateformat(“MMM-dd-yyy-hh:mm:ss-aa”,Locale.US)使用显式定义的区域设置

这很奇怪,您的代码仍然会在我的计算机上引发异常。。。。可能是因为我使用的JDK吗?(1.8u60)这很奇怪。我可以用Java8很好地运行这个程序。尝试使用此站点:
MMM
模式依赖于区域设置。您可以尝试显式指定区域设置:
SimpleDateFormat parserSDF=newsimpledateformat(“MMM-dd-yyy-hh:mm:ss-aa”,locale.US)是的,添加了locale.US,成功了,谢谢你的帮助!