🚀Рассказываем о диагностиках в новом релизе

Hello, Java-World! У нас вышла новая диагностика V6122. Мы лишили вас шанса опоздать куда-то на год, а если подробнее, то:

В Java классах, ответственных за форматирование дат (SimpleDateFormat и DateTimeFormatter), спецификаторы ‘Y’ и ‘y’ имеют разный смысл. Используя ‘Y’, вы получаете не просто год, а год с учётом текущей недели.

`public class Main { public static void main(String[] args) { Date date = new Date("2024/12/31"); String result = new SimpleDateFormat("YYYY-MM-dd").format(date); //2025-12-31 } }

По формату ISO-8601, первая неделя в году: - начинается с понедельника; - содержит минимум 4 дня своего года

Именно поэтому, 30 и 31 декабря войдут в первую неделю 2025 года.

То же самое касается ситуаций, когда неделя, включающая первые январские дни, не относится к первой неделе года. При таком условии, 1, а может быть 2 и 3 января будут входить в последнюю неделю предыдущего года.

Именно поэтому, на стыке старого и нового года мы может получить не то, что хотели. Если очень сильно упростить, ‘Y’ спецификатор позволяет вам путешествовать во времени, но правда без DeLorean’а и седого деда. Если вы к такому не готовы, советуем всё же использовать ‘y’ спецификатор для отображения года.

#PVS_Studio #java`
🚀Рассказываем о диагностиках в новом релизе 
Hello, Java-World! У нас вышла новая диагностика V6122 | Сетка — новая социальная сеть от hh.ru
repost

17

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь