>Java >java지도 시간 >java.time.LocalDateTime과 java.util.Date 사이를 변환하는 방법은 무엇입니까?

java.time.LocalDateTime과 java.util.Date 사이를 변환하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-13 02:53:02267검색

How to Convert Between java.time.LocalDateTime and java.util.Date?

java.time.LocalDateTime과 java.util.Date 간의 변환

Java 8의 java.time 패키지 도입으로 개발자는 처리를 위해 새로운 API를 채택했습니다. 날짜와 시간. 클래스 중에서 LocalDateTime은 시간대에 독립적인 날짜-시간 값을 보유합니다.

그러나 레거시 코드는 java.util.Date 클래스에 의존하는 경우가 많습니다. 이전 코드베이스와 새 코드베이스를 통합할 때 이 두 클래스 간의 변환이 필요합니다.

변환 접근 방식:

java.util.Date에서 LocalDateTime으로:

  1. java.util.Date를 다음을 사용하여 Instant로 변환합니다. toInstant() 메서드.
  2. ofInstant()를 통해 LocalDateTime을 생성하려면 ZoneId.systemDefault()를 사용하여 시간대를 지정합니다.

코드:

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());

LocalDateTime부터 java.util.Date:

  1. LocalDateTime을 ZonedDateTime으로 변환하려면 atZone(ZoneId)을 사용하세요.
  2. toInstant()를 사용하여 ZonedDateTime을 Instant로 변환한 다음 java.util.Date 사용 Date.from().

코드:

LocalDateTime ldt = ...
ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
Date output = Date.from(zdt.toInstant());

일광 절약 시간(DST)에 대한 참고 사항:

ZonedDateTime을 통해 LocalDateTime에서 java.util.Date로 변환하면 다음으로 인해 예기치 않은 동작이 발생할 수 있습니다. 서머타임. 특정 LocalDateTime 값은 DST 전환 중에 존재하지 않거나 두 번 발생할 수 있습니다. 자세한 내용은 atZone(ZoneId)에 대한 Javadoc을 참조하세요.

추가 고려 사항:

  • java.util.Date는 타임라인의 순간을 나타냅니다. java.time.*의 Instant는 시간대가 없는 순간을 나타냅니다.
  • 사이 변환 LocalDateTime 및 java.util.Date는 1582년 이전 달력 시스템(율리우스력과 그레고리력)의 불일치로 인해 다른 순간이 발생할 수 있습니다.

위 내용은 java.time.LocalDateTime과 java.util.Date 사이를 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.