我收到一个日期为"2020-05-16 01:00+0200"
的字符串。我需要将其解析为DateTime对象,但找不到正确的模式,即DateTimeFormat.forPattern("yyyy-MM-dd HH:mm????");
如何包括字符串中的“ +0200”?
另外,有没有办法从DateTime中提取偏移量?
谢谢。
答案 0 :(得分:0)
String dateStringToParse = "2020-05-16 01:00+0200";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mmZ")
.withOffsetParsed();
DateTime dt = DateTime.parse(dateStringToParse, formatter);
System.out.println(dt);
输出为:
2020-05-16T01:00:00.000 + 02:00
Joda-Time的标准行为是解析为默认时区。对withOffsetParsed()
的调用可确保与字符串的偏移量保留在已解析的DateTime
中。
DateTimeFormat
的文档中介绍了模式字母Z
:
Symbol Meaning Presentation Examples ------ ------- ------------ ------- Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
并且:
区域::“ Z”输出偏移量不带冒号,…
要提取偏移量:
DateTimeZone z = dt.getZone();
System.out.println(z);
+02:00