it-swarm.com.ru

Как преобразовать Java.sql.timestamp в LocalDate (Java8) Java.time?

В Java 8, как я могу преобразовать TimestampJava.sql) в LocalDateJava.time)?

105
simonides

Ты можешь сделать:

timeStamp.toLocalDateTime().toLocalDate();
158
assylias

Я немного расширю ответ @assylias, чтобы учесть часовой пояс. Есть как минимум два способа получить LocalDateTime для определенного часового пояса.

Вы можете использовать часовой пояс setDefault для всего приложения. Это должно быть вызвано перед любой меткой времени -> преобразование Java.time:

public static void main(String... args) {
    TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
    TimeZone.setDefault(utcTimeZone);
    ...
    timestamp.toLocalDateTime().toLocalDate();
}

Или вы можете использовать цепочку toInstant.atZone:

timestamp.toInstant()
        .atZone(ZoneId.of("UTC"))
        .toLocalDate();
6
Pavel