ошибка?Похоже, мы согласны с тем, что наблюдаемое поведение не согласуется с документацией (или, по крайней мере, вам потребуется очень творческое прочтение документации, чтобы привести ее в соответствие).
Функция?Насколько я могу судить, наблюдаемое поведение в какой-то момент является сознательным решением.Исходный код для закрытого внутреннего класса LocalizedOffsetIdPrinterParser
внутри DateTimeFormatterBuilder
содержит if (totalSecs != 0) {
до печати часов, минут и секунд.Это не похоже на ошибку копирования-вставки, поскольку точно такая же строка кода больше нигде в файле (смещение 0 специально обрабатывается во многих местах, но я не знаю нигде, где оно полностью исключено).
В шаблоне формата Java 8 OOOO
не анализирует GMT
в одиночку или GMT+00:00
, что должно быть ошибкой.Это исправлено в Java 11. В Java 11 OOOO
синтаксический анализ GMT
в одиночку очень хорош, поэтому они, должно быть, сочли это приемлемым (хотя он также анализирует GMT+00:00
и GMT-00:00
).
Вы можетерассмотрите возможность сообщения об ошибке в Oracle и / или OpenJDK (я не уверен насчет правильного места в эти дни).Будут ли они отклонены, исправят документацию или исправят код - я не смею пытаться угадать.
Обходной путь: 'GMT'xxx
В любом случае,Я хочу как-то +00: 00.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE yyyy.MM.dd HH:mm:ss.SSS 'GMT'xxx");
Ср 2019.02.27 08: 46: 43.226 GMT + 00: 00