这看起来很奇怪。 Java 8根据Millis是否为零来格式化输出格式。您如何强制Java 8(1.8.0_20)始终吐出毫厘而不管它们是否为零?
public static void main(String[] args) {
TemporalAccessor zeroedMillis = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse("2015-07-14T20:50:00.000Z");
TemporalAccessor hasMillis = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse("2015-07-14T20:50:00.333Z");
System.out.println(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(zeroedMillis));
System.out.println(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(hasMillis));
}
2015-07-14T20:50:00Z
2015-07-14T20:50:00.333Z
最佳答案
您基本上不使用ISO_OFFSET_DATE_TIME
:)
如果您遵循该文档,则最终会看到ISO_LOCAL_TIME
的文档,该文档具有:
如果您始终想要精确的3位数字,我怀疑您希望使用DateTimeFormatter.ofPattern
模式的 yyyy-MM-dd'T'HH:mm:ss.SSSX
。
关于java - Java 8 DateTimeFormatter在零时删除millis?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35184481/