Программисты, работающие с Java 8 и новее, могут столкнуться с проблемой конвертации между двумя ключевыми классами для работы с датой и временем: LocalDateTime из нового API для работы с датой и временем и Date из старого (legacy) API.
LocalDateTime — это класс, представляющий дату-время без часового пояса, который вводится в Java 8 в новом API для работы с датой и временем. Этот класс заменяет старый класс java.util.Date, который использовался для хранения даты и времени в предыдущих версиях Java.
Пример кода, использующего java.util.Date:
Date date = new Date(); System.out.println(date.toString());
Пример кода, использующего java.time.LocalDateTime:
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt.toString());
Однако, во многих случаях, старый код все еще использует java.util.Date, и при интеграции старого и нового кода может возникнуть необходимость конвертировать java.util.Date в java.time.LocalDateTime и наоборот.
К сожалению, в этих классах нет прямых методов для конвертации между ними, но это можно сделать с помощью некоторых промежуточных шагов.
Конвертация java.util.Date в java.time.LocalDateTime:
// создание объекта java.util.Date Date date = new Date(); // конвертация в LocalDateTime LocalDateTime ldt = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime();
Конвертация java.time.LocalDateTime в java.util.Date:
// создание объекта java.time.LocalDateTime LocalDateTime ldt = LocalDateTime.now(); // конвертация в java.util.Date Date date = java.sql.Timestamp.valueOf(ldt);
В обоих случаях используется преобразование к промежуточному типу (Instant или Timestamp), который затем конвертируется в нужный тип.
Это простые и эффективные способы конвертации между java.util.Date и java.time.LocalDateTime, необходимые при работе с различными версиями кода Java.
Перейти в телеграм, чтобы получить результаты теста



Забрать
Добавить комментарий