我有这种格式的字符串" 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:格式无效:" 2015-11-18T00:00:00 + 0000"在" + 0000"
时格式不正确
如何将上述字符串转换为DateTime
?
答案 0 :(得分:3)
方法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()
。