ISODateTimeFormat.dateTime().parseDateTime() 无法解析 2015-11-18T00:00:00+0000
ISODateTimeFormat.dateTime().parseDateTime() cannot parse 2015-11-18T00:00:00+0000
我有这种格式的字符串“2015-11-18T00:00:00+0000”。我认为它是 ISO8601 格式并试图将它解析为 Joda DateTime
实例,但它告诉我它格式错误:
String toParse = "2015-11-18T00:00:00+0000";
DateTime date = ISODateTimeFormat.dateTime().parseDateTime(toParse);
我得到了这个错误:
java.lang.IllegalArgumentException: Invalid format: "2015-11-18T00:00:00+0000" is malformed at "+0000"
如何将上述字符串转换为 DateTime
?
方法 ISODateTimeFormat.dateTime()
需要您输入中缺少的毫秒部分。解决方法:使用方法dateTimeNoMillis().
String input = "2015-11-18T00:00:00+0000";
DateTime dt = ISODateTimeFormat.dateTimeNoMillis().parseDateTime(input);
System.out.println(dt); // 2015-11-18T01:00:00.000+01:00 (using offset of default timezone)
如果您想保留输入中包含的偏移量 (+0000),那么您还需要在格式化程序上调用 withOffsetParsed()
。
我有这种格式的字符串“2015-11-18T00:00:00+0000”。我认为它是 ISO8601 格式并试图将它解析为 Joda DateTime
实例,但它告诉我它格式错误:
String toParse = "2015-11-18T00:00:00+0000";
DateTime date = ISODateTimeFormat.dateTime().parseDateTime(toParse);
我得到了这个错误:
java.lang.IllegalArgumentException: Invalid format: "2015-11-18T00:00:00+0000" is malformed at "+0000"
如何将上述字符串转换为 DateTime
?
方法 ISODateTimeFormat.dateTime()
需要您输入中缺少的毫秒部分。解决方法:使用方法dateTimeNoMillis().
String input = "2015-11-18T00:00:00+0000";
DateTime dt = ISODateTimeFormat.dateTimeNoMillis().parseDateTime(input);
System.out.println(dt); // 2015-11-18T01:00:00.000+01:00 (using offset of default timezone)
如果您想保留输入中包含的偏移量 (+0000),那么您还需要在格式化程序上调用 withOffsetParsed()
。