Есть ли способ получить строковое представление средств форматирования, определенных статически в DateTimeFormatter
?
Например. для DateTimeFormatter.ISO_OFFSET_DATE_TIME
я хотел бы получить что-то вроде:
"uuuu-MM-dd'T'HH:mm:ss.SSSX"
Я проверил источник DateTimeFormatter
и не нашел методов, которые дают эту информацию. Он внутренне использует DateTimeFormatterBuilder
с программно установленными полями, свойствами и т. д. и не использует String
.
Когда я вызываю toString()
в конкретном форматере, я получаю, например:
DateTimeFormatter.ISO_OFFSET_DATE_TIME.toString()
дает:
ParseCaseSensitive(false)(ParseCaseSensitive(false)(Value(Year,4,10,EXCEEDS_PAD)'-'Value(MonthOfYear,2)'-'Value(DayOfMonth,2))'T'(Value(HourOfDay,2)':'Value(MinuteOfHour,2)[':'Value(SecondOfMinute,2)[Fraction(NanoOfSecond,0,9,DecimalPoint)]]))Offset(+HH:MM:ss,'Z')
toString
, средство форматирования содержит гораздо больше, чем просто буквы шаблона формата (или то, что они могут представлять). Таким образом, средство форматирования обычно не может быть преобразовано в строку шаблона формата и обратно. - person Ole V.V.   schedule 15.04.2019DateTimeFormatter.ISO_OFFSET_DATE_TIME
принимает любые цифры от 0 до 9 десятичных знаков в секундах, ни одна строка шаблона формата не будет работать точно так же. ([.SSSSSSSSS][.SSSSSSSS][.SSSSSSS][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]
поможет вам приблизиться, но не совсем туда.) - person Ole V.V.   schedule 15.04.2019