如何创建不使用冒号的ISO_INSTANT DateTimeFormatter的自定义变体?

Gus*_*ave 6 java java-8 java-time

我想将类的实例转换java.time.Instant为Strings和来自Strings.

我想使用一种格式,就像格式java.time.format.DateTimeFormatter.ISO_INSTANT中的冒号被省略或用点代替的唯一区别一样,这样它们就可以在不转义文件名和URL的情况下使用.

示例:2011-12-03T10.15.30.001Z而不是2011-12-03T10:15:30.001Z

有关ISO_INSTANT的信息,请参阅Javadoc:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_INSTANT

Tun*_*aki 4

您可以像这样构建自己的格式化程序:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH.mm.ss.SSSVV")
Run Code Online (Sandbox Code Playgroud)

JavadocDateTimeFormatter列出了所有可能的标记及其含义。

  • DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH.mm.ss.SSSVV").format(Instant.EPOCH) 产生 java.time.temporal.UnsupportedTemporalTypeException: 不支持的字段: YearOfEra (2认同)