我正在接收一个带有日期的字符串,格式为 "2020-05-16 01:00+0200"
. 我需要把它解析成一个DateTime对象,但我找不到正确的模式,即:"+0200"。DateTimeFormat.forPattern("yyyy-MM-dd HH:mm????");
我如何从字符串中包含 "+0200"? 另外,有没有办法从DateTime中提取偏移量?
谢谢,谢谢。
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
还有:
Zone: 'Z'输出偏移量,不含冒号,...。
要提取偏移量。
DateTimeZone z = dt.getZone();
System.out.println(z);
+02:00