我在Jboss服务器的jar文件中有一个Java类,该文件通过bash文件调用,如下所示。
java -cp /com/site/domain/TimeFormatter.jar packOne.subPack.Test
但是在其中解析以下日期时出现错误。
java.text.ParseException: Unparseable date: "Wed, 29 Jan 2014 21:00:00 GMT"
at java.text.DateFormat.parse(DateFormat.java:335)
Java代码:
Date date = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z").parse("Sun, 26 Jan 2014 21:00:00 GMT");
System.out.println("main().date : " + date);
我在这里想念什么?我读过许多有关SimpleDateFormat行为异常的文章。但这是我在那些帖子中找不到的东西。
注意:我认为这是因为Java版本更改或某些原因。但是,我在计算机中执行了不同版本的同一程序。效果很好。服务器Java版本“ 1.5.0_22”
语言环境详细信息:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
对我来说效果很好,我认为这不是与Java版本有关的问题...而是更多的Locale
问题:)
指定Locale.ENGLISH
适合您的SimpleDateFormat
应该可以使其正常工作。例如,您可以这样做:
final Date date = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z", Locale.ENGLISH).parse("Sun, 26 Jan 2014 21:00:00 GMT");
如SimpleDateFormat的javadoc条目中所指定,日期解析是对语言环境敏感的。我必须承认我不完全知道您的字符串与您的字符串不匹配,Locale,
但是如果...我们可以进一步调查...,我们知道您的默认Locale
实际上是:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句