如何将日期字符串转换为joda DateTime?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将日期字符串转换为joda DateTime?相关的知识,希望对你有一定的参考价值。

我有一个日期字符串“ IST 2019年11月20日星期三00:00:00”。如何使用模式“ yyyyMMdd”将其转换为joda DateTime。


dateObject.setStartDate(new DateTime().plusDays(1).toString("yyyyMMdd"));

答案

您的字符串模式的问题在于,JodaTime无法识别'IST'时区。 (有关支持的时区的列表,请参见http://joda-time.sourceforge.net/timezones.html。)

如果您始终想解析同一时区中的日期,则可以使用:

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss 'IST' yyyy").withZone(DateTimeZone.forID("Indian/Mahe"));
DateTime parsed = DateTime.parse("Wed Nov 20 00:00:00 IST 2019", dateTimeFormatter);

请注意,我已经使用IST作为模式格式的字符串文字,即,仅当您的日期字符串始终包含“ IST”字符串时,此方法才有效。

要在解析的日期中添加固定的时区信息,请使用格式化程序上的withZone。在这种情况下,我选择了一个称为JodaTime的随机印度时区,即“ Indian / Mahe”。在支持的时区列表中查找与您的时区匹配的那个。

以上是关于如何将日期字符串转换为joda DateTime?的主要内容,如果未能解决你的问题,请参考以下文章

Joda DateTime 到 BigDecimal 分数计算

Joda Time 将时区日期时间转换为毫秒

Grails 无法将 JSON 中的日期/时间解组回 joda DateTime

如何从 org.joda.time.DateTime 转换为 java.time.ZonedDateTime

Java中从LocalDateTime到joda DateTime的不正确日期转换

org.joda.time.DateTime 日期格式