【问题标题】:Going from java.util.time to jodatime从 java.util.time 到 jodatime
【发布时间】:2013-10-23 09:00:15
【问题描述】:
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”,但结果相同。

【问题讨论】:

  • 我猜你在最后一行代码中的意思是parser.parseDateTime(t)。它非常适合我

标签: java string parsing datetime jodatime


【解决方案1】:

添加区域设置解决了它:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2016-06-06
    • 2019-03-07
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2020-09-22
    相关资源
    最近更新 更多