Сегодня температура в Шанхае опустилась до минусовой отметки, вставать совсем не хочется, думала сразу лечь спать до обеда. В итоге я увидел, что маленькие друзья в группе пожаловались и были вызваны для исправления бага рано утром.При ближайшем рассмотрении баг, который нужно исправить, действительно говорилось много раз.YYYY-MM-ddПроблема, эта статья была написана несколько раз раньше."Я слышал, что другого брата забанили за использование ГГГГ-ММ-дд...", а почему еще набирают людей?
Но подумайте еще раз,это вообще-то нормально.Каждый год появляются новые люди,даже старики,они могут взять на себя систему,которая уже имеет проблемы из-за смены работы.Конечно,они могут не обращать внимания на ДД,и иметь не видели предыдущие фотографии толчка? Неважно, по какой причине, может быть, есть другие друзья, которые собираются исправить ошибки, так что вставайте и продвигайте статью и рассказывайте об этой проблеме.
Если вам случится столкнуться с этим, вы можете взглянуть, чтобы понять причину и соответствующим образом с ней справиться; если вы еще не столкнулись с этим, лучше проверить это самостоятельно. Если вы уже хорошо это знаете, то поделитесь этой статьей в кругу друзей и напомните другим коллегам вокруг вас, может быть, несколько братьев, которые в пути, чтобы исправить ошибки, взорвутся.
место происшествия
Давайте сначала напишем модульный тест, чтобы воспроизвести проблему.
Логика теста:
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, делитесь последними отраслевыми новостями и информацией о передовых технологиях, следите за мной! Получите последние рубежи в первый раз и накопите капитал, чтобы технические специалисты могли обгонять в поворотах.