我尝试了不同的ISODateTimeFormats
(dateHourMinuteSecond()
,dateTimeNoMillis()
)以及我自己的格式"yyyy-MM-dd'T'HH:mm:ss"
,以使时间戳可以被解析为没有毫秒的日期时间对象,但都失败了。
对于每个格式,我都试图相应地修改字符串:
String value = "2011-01-24T09:45:00.000";
DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinuteSecond();
value = value.substring(0, value.lastIndexOf('.'));
System.out.println("Formatted dateTime: "+formatter.parseDateTime(value));
输出:
Formatted dateTime: 2011-01-24T09:45:00.000Z
DateTime
对象始终保持毫秒值。即使您解析一个没有毫秒值的字符串,毫秒值也会自动设置为零。如果您只想忽略毫秒部分,可以实现自己的ReadablePartial
子类(您可以查看LocalDateTime
,它是一个没有时区字段的DateTime
- 您可以类似地做一些类似的事情,但也从中删除毫秒字段)。我从未做过部分类,但这就是我开始的方式。 - user7605325