解析日期不工作
我正在运行的问题,当我试图将字符串转换为java.util.Date。解析日期不工作
我的日期格式如下:Jan 23 2016 4:00:24 PM我想将该字符串转换为Date对象。所以要做到这一点,我使用SimpleDateFormat与参数,根据javadoc:MMM dd yyyy aa。
但是当我跑步时我的代码,我现在遇到一个java.text.ParseException:无法解析的日期:“2016年1月23日下午四点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);
你是什么系统默认的区域设置?你可以用Locale.getDefault()
方法调用来检查它。我试过你的代码,使用默认的en_US
语言环境适合我。但我试图使用另一个(我用中文)并且遇到了同样的错误。
尝试使用SimpleDateFormat parserSDF = new SimpleDateFormat("MMM dd yyyy hh:mm:ss aa", Locale.US);
与明确定义的区域设置
此代码运行对我很好,并产生输出周六1月23日16时○○分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();
}
呃,这很奇怪,你的代码仍然在我的电脑上引发异常....可能是因为我使用的JDK? (1.8u60) – user3127125
这很奇怪。我可以使用Java 8运行良好的程序。尝试使用此网站:http://www.tutorialspoint.com/compile_java8_online.php –
的'MMM'图案是区域设置相关。您可以尝试明确指定区域设置:'SimpleDateFormat parserSDF = new SimpleDateFormat(“MMM dd yyyy hh:mm:ss aa”,Locale.US);' –
是的,添加locale.US是有帮助的,感谢您的帮助! – user3127125