V rámci java.time.format.DateTimeFormatter je možné použít pro formátování roku malá y a velká Y. Špatně zvolené y může znamenat špatně dohledatelnou chybu. Malé y znamená year-of-era, což vytvoří očekávaný výstup, kdy 31.12. bude vždy jako poslední den v daném roce. Velké Y znamená week-based-year, což v případě týdnu, který spadá do více roků, vytvoří neočekávaný výstup. Pokud Silvestr (či pár předchozích dnů) připadnou do týdne, který nemá 31.12. v sobotu, budou dny poslední dny roku z přelomového týdne patřit do následujího roku. Příklad bude nejlepší. Takto to funguje na Linuxu, ale např. na Window byl výstup s velkým Y pro rok 2021 stejný jako pro malé y.
val formatY = DateTimeFormatter.ofPattern("ccc dd.MM.YYYY")
val formaty = DateTimeFormatter.ofPattern("ccc dd.MM.yyyy")
Formatting 2021-12-31
ccc dd.MM.YYYY format Fri 31.12.2022
ccc dd.MM.yyyy format Fri 31.12.2021
Formatting 2020-12-31
ccc dd.MM.YYYY format Thu 31.12.2021
ccc dd.MM.yyyy format Thu 31.12.2020
Formatting 2019-12-31
ccc dd.MM.YYYY format Tue 31.12.2020
ccc dd.MM.yyyy format Tue 31.12.2019
Formatting 2018-12-31
ccc dd.MM.YYYY format Mon 31.12.2019
ccc dd.MM.yyyy format Mon 31.12.2018
Formatting 2017-12-31
ccc dd.MM.YYYY format Sun 31.12.2018
ccc dd.MM.yyyy format Sun 31.12.2017
Formatting 2016-12-31
ccc dd.MM.YYYY format Sat 31.12.2016
ccc dd.MM.yyyy format Sat 31.12.2016
Formatting 2015-12-31
ccc dd.MM.YYYY format Thu 31.12.2016
ccc dd.MM.yyyy format Thu 31.12.2015
Formatting 2014-12-31
ccc dd.MM.YYYY format Wed 31.12.2015
ccc dd.MM.yyyy format Wed 31.12.2014
Formatting 2013-12-31
ccc dd.MM.YYYY format Tue 31.12.2014
ccc dd.MM.yyyy format Tue 31.12.2013
Formatting 2012-12-31
ccc dd.MM.YYYY format Mon 31.12.2013
ccc dd.MM.yyyy format Mon 31.12.2012
Formatting 2011-12-31
ccc dd.MM.YYYY format Sat 31.12.2011
ccc dd.MM.yyyy format Sat 31.12.2011
Formatting 2010-12-31
ccc dd.MM.YYYY format Fri 31.12.2011
ccc dd.MM.yyyy format Fri 31.12.2010