«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как преобразовать java.util.Date в Instant, OffsetDateTime или ZonedDateTime java.time?

Как преобразовать java.util.Date в Instant, OffsetDateTime или ZonedDateTime java.time?

Опубликовано 6 ноября 2024 г.
Просматривать:321

How do I convert java.util.Date to java.time\'s Instant, OffsetDateTime, or ZonedDateTime?

Преобразуйте java.util.Date в Instant, OffsetDateTime или ZonedDateTime java.time

По мере перехода к современной платформе java.time , важно знать, как преобразовать устаревшие объекты java.util.Date в соответствующие типы java.time. Вот краткое изложение эквивалентов:

java.util.Date to Instant

Оба представляют момент в формате UTC, поэтому преобразование является простым:

Instant instant = myUtilDate.toInstant();

java.util.Date myUtilDate = java.util.Date.from(instant);

java.util.Date в OffsetDateTime или ZonedDateTime java.time

Поскольку эти типы включают информацию о часовом поясе, необходимо извлечь пояс из устаревшей даты:

// If the legacy date is a GregorianCalendar (which can hold time zone info)
if (myUtilCalendar instanceof GregorianCalendar) {
    GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
    ZonedDateTime zdt = gregCal.toZonedDateTime(); // ZonedDateTime with time zone

    java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt);
}

Дополнительные сопоставления конверсий

Устаревший типэквивалент java.timeДополнительно Заметки
java.util.CalendarМгновенноПреобразует в начало дня в UTC
java.util.GregorianCalendarZonedDateTimeСохраняет часовой пояс информация
java.util.LocalDateZonedDateTimeДля определения часового пояса требуется date
java.util.LocalTimeМгновенноПреобразует в начало дня в UTC
java.util.LocalDateTimeZonedDateTimeДля определения даты и времени требуется часовой пояс

Важный Соображения

  • Преобразование типа java.util.Date в тип java.time может привести к потере точности, поскольку наносекундное разрешение не поддерживается устаревшими классами.
  • При преобразовании в OffsetDateTime или ZonedDateTime информация о часовом поясе должна быть сохранена для обеспечения правильной интерпретации.
  • Настоятельно рекомендуется использовать типы java.time в новых код для повышения точности и согласованности.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3