Вас забили в этом году за ГГГГ-ММ-дд?

Java задняя часть
Вас забили в этом году за ГГГГ-ММ-дд?

Сегодня температура в Шанхае опустилась до минусовой отметки, вставать совсем не хочется, думала сразу лечь спать до обеда. В итоге я увидел, что маленькие друзья в группе пожаловались и были вызваны для исправления бага рано утром.При ближайшем рассмотрении баг, который нужно исправить, действительно говорилось много раз.YYYY-MM-ddПроблема, эта статья была написана несколько раз раньше."Я слышал, что другого брата забанили за использование ГГГГ-ММ-дд...", а почему еще набирают людей?

image.png

Но подумайте еще раз,это вообще-то нормально.Каждый год появляются новые люди,даже старики,они могут взять на себя систему,которая уже имеет проблемы из-за смены работы.Конечно,они могут не обращать внимания на ДД,и иметь не видели предыдущие фотографии толчка? Неважно, по какой причине, может быть, есть другие друзья, которые собираются исправить ошибки, так что вставайте и продвигайте статью и рассказывайте об этой проблеме.

Если вам случится столкнуться с этим, вы можете взглянуть, чтобы понять причину и соответствующим образом с ней справиться; если вы еще не столкнулись с этим, лучше проверить это самостоятельно. Если вы уже хорошо это знаете, то поделитесь этой статьей в кругу друзей и напомните другим коллегам вокруг вас, может быть, несколько братьев, которые в пути, чтобы исправить ошибки, взорвутся.

место происшествия

Давайте сначала напишем модульный тест, чтобы воспроизвести проблему.

Логика теста:

1. Создайте два формата даты:

  • Один из них - проблемный ГГГГ-ММ-дд.
  • Другой - правильное использование yyyy-MM-dd

2. Отформатируйте две разные даты: 25 декабря 2021 г. (суббота), 26 декабря 2020 г. (воскресенье). Конкретный код выглядит следующим образом:

public class Tests { 

    @Test
    public void test() throws Exception {
        SimpleDateFormat df1 = new SimpleDateFormat("YYYY-MM-dd");
        SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");

        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, 2021);
        c.set(Calendar.MONTH, 11);

        // 2021年12月25日周六
        c.set(Calendar.DATE, 25);
        System.out.println("YYYY-MM-dd = " + df1.format(c.getTime()));
        System.out.println("yyyy-MM-dd = " + df2.format(c.getTime()));

        // 分割线
        System.out.println("========================");

        // 2021年12月26日 周日
        c.set(Calendar.DATE, 26);
        System.out.println("YYYY-MM-dd = " + df1.format(c.getTime()));
        System.out.println("yyyy-MM-dd = " + df2.format(c.getTime()));
    }

}

Запустив тест, вы увидите, что вывод выглядит следующим образом:

YYYY-MM-dd = 2021-12-25
yyyy-MM-dd = 2021-12-25
========================
YYYY-MM-dd = 2022-12-26
yyyy-MM-dd = 2021-12-26

25 декабря 2021 г. (суббота), оба формата верны 26 декабря 2021 года (воскресенье) что-то пошло не так с ГГГГ-ММ-дд, год 2022

проблема вызывает

Почему формат ГГГГ-ММ-дд 26 декабря 2021 года, это будет в 2022 году?

Поскольку год YYYY основан на неделе, это означает: год недели, к которому относится текущий день. Неделя начинается в воскресенье и заканчивается в субботу. Если эта неделя приходится на канун Нового года, эта неделя считается следующий год.

Так что 26 декабря 2021 года — это уже 2022 год в таком выражении.

И когда используется yyyy, это все еще 2021 год.

Ну, наконец, поделитесь этой статьей в кругу друзей, напомните другим друзьям вокруг вас и посмотрите, сможете ли вы взорвать нескольких братьев на дороге, чтобы исправить ошибку сегодня.

Наконец, друзья, которые обычно любят обсуждать технологии, также могут присоединиться к нашей высококачественной группе по обмену технологиями.С великими людьми ты тоже будешь великим

DD составляет список Nuggets. Если моя публикация помогла вам, вы можете прийти и проголосовать за меня. В отличие от других блоггеров, здесь на DD действуют старые правила,Для призов за рейтинги событий DD не требуется, и они будут вручены болельщикам в конце!. заинтересованные партнерыНажмите, чтобы принять участие

Мой официальный аккаунт: Programmer DD, делитесь последними отраслевыми новостями и информацией о передовых технологиях, следите за мной! Получите последние рубежи в первый раз и накопите капитал, чтобы технические специалисты могли обгонять в поворотах.