从java.util.time到jodatime

时间:2013-10-15 14:00:37

标签: java string parsing datetime jodatime

String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000
DateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z",Locale.ENGLISH);
Date time = parser.parse(t);

这是我在使用java.util.Date时所使用的,但是当我比较2个Date对象时,我有时遇到问题,我尝试使用Calendar但无济于事,然后我偶然发现了JodaTime。所以在那之后,我想我会尝试使用他们的DateTIme格式,看看它是如何工作的,但我得到了:

  

java.lang.IllegalArgumentException:格式无效:“Tue Mar 5 08:30:20 2013 +0000”

当我尝试使用以下代码将字符串转换为DateTime格式时:

String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000
DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z");
DateTime time = DateTime.parse(t, parser);

我做错了什么?据我所知,我使用的模式是相同的,我尝试用“kk”替换“HH”,但它给出了相同的结果。

1 个答案:

答案 0 :(得分:0)

添加Locale解决了它:

DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z").withLocale(Locale.ENGLISH);