Строковое представление средств форматирования в java.time.format.DateTimeFormatter

Есть ли способ получить строковое представление средств форматирования, определенных статически в 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')

person zolv    schedule 15.04.2019    source источник
comment
Нет и по уважительной причине. Как вы уже можете видеть в строке, которую вы получили от toString, средство форматирования содержит гораздо больше, чем просто буквы шаблона формата (или то, что они могут представлять). Таким образом, средство форматирования обычно не может быть преобразовано в строку шаблона формата и обратно.   -  person Ole V.V.    schedule 15.04.2019
comment
Я нашел связанный дубликат в Google в одном поиске. Была ли причина, по которой вы не смогли?   -  person Michael    schedule 15.04.2019
comment
Я мог бы добавить, что, поскольку DateTimeFormatter.ISO_OFFSET_DATE_TIME принимает любые цифры от 0 до 9 десятичных знаков в секундах, ни одна строка шаблона формата не будет работать точно так же. ([.SSSSSSSSS][.SSSSSSSS][.SSSSSSS][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S] поможет вам приблизиться, но не совсем туда.)   -  person Ole V.V.    schedule 15.04.2019