ISODateTimeFormat.dateTime()。parseDateTime()无法解析2015-11-18T00:00:00 + 0000

时间:2016-01-30 01:30:20

标签: java jodatime

我有这种格式的字符串" 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

1 个答案:

答案 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()