"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > java.util.Date를 java.time\의 Instant, OffsetDateTime 또는 ZonedDateTime으로 어떻게 변환합니까?

java.util.Date를 java.time\의 Instant, OffsetDateTime 또는 ZonedDateTime으로 어떻게 변환합니까?

2024-11-06에 게시됨
검색:356

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

java.util.Date를 java.time의 Instant, OffsetDateTime 또는 ZonedDateTime으로 변환합니다.

최신 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에서 java.time의 OffsetDateTime 또는 ZonedDateTime

이후 유형은 시간대 정보를 통합하므로 기존 날짜에서 시간대를 추출해야 합니다.

// 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.LocalDate ZonedDateTime날짜를 결정하려면 시간대가 필요합니다.
java.util.LocalTime순간다음으로 변환됩니다. 하루의 시작(UTC)
java.util.LocalDateTimeZonedDateTime날짜와 시간을 결정하려면 시간대가 필요합니다.

중요 고려 사항

  • java.util.Date에서 java.time 유형으로 변환하면 다음과 같이 정밀도가 손실될 수 있습니다. 나노초 해상도는 레거시 클래스에서 지원되지 않습니다.
  • OffsetDateTime 또는 ZonedDateTime으로 변환할 때 올바른 해석을 위해 시간대 정보를 유지해야 합니다.
  • java.time 유형을 사용하는 것이 좋습니다. 향상된 정확성과 일관성을 위해 새로운 코드를 작성했습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3