Документация класса DateTimeFormatter
говорит о его кодах форматирования за год:
год 2004; 04
год 2004 года; 04
...
Год: Количество букв определяет минимальную ширину поля, ниже которой используется дополнение. Если количество букв равно двум, используется сокращенная двухзначная форма. Для печати это выдает самые правые две цифры. Для синтаксического анализа это будет анализироваться с использованием базового значения 2000, в результате чего в течение года в диапазоне от 2000 до 2099 включительно. Если количество букв меньше четырех (но не двух), то знак выводится только на отрицательные годы в соответствии с SignStyle.NORMAL. В противном случае знак выводится, если ширина прокладки превышена, согласно SignStyle.EXCEEDS_PAD.
Никакое другое упоминание о "эре".
В чем разница между этими двумя кодами, u
по сравнению с y
, year
по сравнению с year-of-era
?
Когда следует использовать что-то вроде этого шаблона uuuu-MM-dd
и когда yyyy-MM-dd
при работе с датами в Java?
Кажется, что код примера, написанный теми, кто знает, использует uuuu
, но почему?
Другие классы форматирования, такие как устаревшие SimpleDateFormat
, имеют только yyyy
, поэтому я смущен, почему java.time приносит этот uuuu
для "года эры".