tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" )
)
Детали
Другие ответы с java.util.Date
, java.sql.Date
и SimpleDateFormat
в настоящее время устарели.
LocalDate
Современный способ установить дату и время - это, в частности, работать с классами java.time LocalDate
. LocalDate
Класс представляет собой дату только значение без времени суток и без временной зоны.
DateTimeFormatter
Чтобы проанализировать или сгенерировать String, представляющий значение даты и времени, используйте DateTimeFormatter
класс.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
LocalDate ld = LocalDate.parse( "19/05/2009" , f );
Не объединяйте объект даты и времени со строкой, представляющей его значение. Объект даты и времени не имеет формата , в отличие от String. Объект даты и времени, например LocalDate
, может генерировать String для представления своего внутреннего значения, но объект даты и времени и String являются отдельными отдельными объектами.
Вы можете указать любой настраиваемый формат для создания строки. Или позвольте java.time выполнить автоматическую локализацию.
DateTimeFormatter f =
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH ) ;
String output = ld.format( f );
Выгрузить в консоль.
System.out.println( "ld: " + ld + " | output: " + output );
ld: 2009-05-19 | вывод: mardi 19 mai 2009
Посмотрите в действии на IdeOne.com .
О java.time
Java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытеснять неприятные старые устаревшие классы даты и времени , такие как java.util.Date
, Calendar
, и SimpleDateFormat
.
Проект Joda-Time , находящийся сейчас в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial . И поищите в Stack Overflow множество примеров и объяснений. Спецификация - JSR 310 .
Вы можете обмениваться объектами java.time напрямую с вашей базой данных. Используйте драйвер JDBC, совместимый с JDBC 4.2 или новее. Нет необходимости в строках, нет необходимости в java.sql.*
занятиях.
Где взять классы java.time?
- Java SE 8 , Java SE 9 и более поздние версии
- Встроенный.
- Часть стандартного Java API со встроенной реализацией.
- В Java 9 добавлены некоторые незначительные функции и исправления.
- Java SE 6 и Java SE 7
- Большая часть функциональности java.time перенесена на Java 6 и 7 в ThreeTen-Backport .
- Android
- Более поздние версии Android связывают реализации классов java.time.
- Для более ранних версий Android (<26) проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше). См. Как использовать ThreeTenABP… .
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является испытательной площадкой для возможных будущих дополнений к java.time. Вы можете найти некоторые полезные классы здесь , такие как Interval
, YearWeek
, YearQuarter
, и более .