java.time
Чтобы жестко закодировать дату, используйте следующее:
LocalDate date2 = LocalDate.of(2018, Month.OCTOBER, 12);
System.out.println("Harcoded date: " + date2);
Вы никогда не будете сомневаться, какой месяц, день и год.Вывод:
Дата с кодировкой: 2018-10-12
Следует избегать плохо спроектированного и давно устаревшего класса Date
и даже более его устаревших конструкторов.Вместо этого я использую LocalDate
из java.time, современного Java-API даты и времени.Также LocalDate
представляет календарную дату (без времени суток), в отличие от Date
, которая, несмотря на свое название, представляет собой момент времени.
Кстати, я не смог воспроизвести вашу проблему.Я получаю Fri Oct 12 00:00:00 CEST 2018
(что также согласуется с документацией, хотя эта часть документации очень трудна для чтения и понимания).
Ссылка: Руководство по Oracle: Date Time , объясняющее, как использовать java.time.