Как на самом деле работает Java «неделя-год»?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как на самом деле работает Java «неделя-год»?

Сообщение Anonymous »

Это началось с простой ошибки: в строке формата для объекта SimpleDateFormat у меня было YYYY вместо yyyy. Но я совершенно озадачен результатами моих тестов с неверной строкой формата.

Этот код:

@Test
public void whatTheHell() {
try {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");

Date d1 = sdf.parse("01/07/2016");
Date d2 = sdf.parse("02/08/2016");
Date d3 = sdf.parse("11/29/2027");

System.out.println(d1.toString());
System.out.println(d2.toString());
System.out.println(d3.toString());
} catch (ParseException pe) {
fail("ParseException: " + pe.getMessage());
}
}


выдает следующий результат:

Sun Dec 27 00:00:00 PST 2015
Sun Dec 27 00:00:00 PST 2015
Sun Dec 27 00:00:00 PST 2026


Я прочитал документацию по параметру «Y» здесь: https://docs.oracle.com/javase/7/docs/a ... endar.html, но до сих пор не вижу логики, которая здесь работает. Особенно последний пример: я вроде как понимаю, как даты в январе (и, возможно, феврале) могут быть переведены в декабрь предыдущего года, но перемещение даты 29 ноября назад на 11 месяцев меня сбивает с толку. А что такого особенного в 27 декабря?

Может кто-нибудь объяснить?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

@Jan предположил, что использование метода toString() может быть проблемой, поэтому я определил формат даты для печати ГГГГ ММ дд '-' гггг ММ дд в том же коде, что и выше. Вот дополнительный вывод:

2016 12 27 - 2015 12 27
2016 12 27 - 2015 12 27
2027 12 27 - 2026 12 27


Подробнее здесь: https://stackoverflow.com/questions/346 ... eally-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»