Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
20 Май 2024
2 мин
473

Конвертация между java.time.LocalDateTime и java.util.Date

Программисты, работающие с Java 8 и новее, могут столкнуться с проблемой конвертации между двумя ключевыми классами для работы с датой и временем: LocalDateTime

Программисты, работающие с 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.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

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