不,这是不可能的
根据要求:是的,我们知道没有等效的格式模式字符串DateTimeFormatter.ISO_OFFSET_DATE_TIME
.
DateTimeFormatter.ISO_OFFSET_DATE_TIME
如果它们为零,则省略秒和/或秒的纳秒。如果 nanos 不为零,“将根据需要输出尽可能多的数字。” 没有任何模式字母或模式字母组合会给您相同的行为。
Deep inside DateTimeFormatter
,ISO_OFFSET_DATE_TIME
使用 an ISO_LOCAL_TIME
,它又以这种方式定义:
ISO_LOCAL_TIME = new DateTimeFormatterBuilder()
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.optionalStart()
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.optionalStart()
.appendFraction(NANO_OF_SECOND, 0, 9, true)
.toFormatter(ResolverStyle.STRICT, null);
这是获得动态行为的方法:使用 aDateTimeFormatterBuilder
及其optionalStart
和appendFraction
方法。
顺便说一句,您不想完全复制 的行为ISO_OFFSET_DATE_TIME
。您将需要使用内置的格式化程序。