Java 解析日期不起作用
当我试图将字符串转换为java.util.Date时,遇到了一个问题 我的日期格式如下:2016年1月23日下午4:00:24,我想将该字符串转换为日期对象。因此,为了做到这一点,我使用了一个SimpleDataFormat,根据javadoc:MMM dd yyyy aa. 但当我运行代码时,我遇到了一个java.text.ParseException:无法解析的日期:“2016年1月23日下午4:00:24” 我有什么问题 谢谢 编辑:有问题的代码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
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,成功了,谢谢你的帮助!