Ужасный класс java.sql.Timestamp
теперь унаследован, больше не требуется с JDBC 4.2 и более поздних версий.Для работы с базой данных вместо этого используйте OffsetDateTime
, возможно, настроив на / от Instant
или ZonedDateTime
.
LocalDate
Похоже, вам нужна только дата, без времени суток и без часового пояса или смещения от UTC.
Для представления только даты используйте класс LocalDate
.
LocalDate ld = LocalDate.parse( "2019-01-23" ) ; // By default, parses strings in standard ISO 8601 format: YYYY-MM-DD.
Чтобы зафиксировать текущую дату, указав часовой пояс.
ZoneId z = ZoneId.systemDefault() ;
LocalDate ld = LocalDate.now( z ) ;
Чтобы сгенерировать текст, представляющий это значение, используйте DateTimeFormatter
.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ) ;
String output = ld.format( f ) ;
JDBC
Для записи объекта LocalDate
в базу данных в столбце типа данных, аналогичного стандартному типу SQL DATE
:
myPreparedStatement.setObject( … , ld ) ;
Извлечение из базы данных:
LocalDate ld = myResultSet( … , LocalDate.class ) ;