728x90
이해하기 쉬운 Java 예제를 사용하여 LocalDateTime 을 ZonedDateTime 으로 또는 그 반대로 변환하는 방법을 배웁니다.
- LocalDateTime 의 인스턴스는 ISO-8601 달력 시스템에서 표준 시간대가 없는 날짜-시간(나노초 정밀도까지)을 나타냅니다.
- LocalDateTime 인스턴스는 로컬 타임라인의 한 지점을 나타냅니다 .
- 오프셋이나 시간대와 같은 추가 정보 없이는 유니버설 타임라인에서 순간을 나타낼 수 없습니다.
ZonedDateTime 인스턴스는 유니버설 타임라인의 순간을 나타냅니다 . 날짜, 시간 및 지역 정보의 조합입니다.
1. LocalDateTime -> ZonedDateTime
LocalDateTime에서 ZonedDateTime으로 변환하려면 지역 날짜-시간에 영역 오프셋을 추가해야 합니다. 추가할 영역 정보가 무엇이든 구성된 개체는 구성된 오프셋이 있는 유니버설 타임라인의 순간을 나타냅니다.
ZonedDateTime = LocalDateTime + ZoneId
LocalDateTime ldt = LocalDateTime.now(); //Local date time
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" ); //Zone information
ZonedDateTime zdtAtAsia = ldt.atZone( zoneId ); //Local time in Asia timezone
ZonedDateTime zdtAtET = zdtAtAsia
.withZoneSameInstant( ZoneId.of( "America/New_York" ) ); //Same time in ET timezone
프로그램 출력:
2018-07-15T11:27:46.203763100+05:30[아시아/콜카타]
2018-07-15T01:57:46.203763100-04:00[미국/뉴욕]
2. ZonedDateTime -> LocalDateTime
ZonedDateTime.toLocalDateTime()시간대 정보 없이 현지 날짜/시간을 가져오는 메소드를 사용 하십시오.
ZonedDateTime zdtAtET = ZonedDateTime.now(ZoneId.of("America/New_York"));
LocalDateTime ldt = zdtAtET.toLocalDateTime();
System.out.println(zdtAtET);
System.out.println(ldt);
프로그램 출력:
2018-07-15T01:59:52.054839900-04:00[미국/뉴욕]
2018-07-15T01:59:52.054839900
728x90
'JAVA' 카테고리의 다른 글
JAVA stream filter 정리 (0) | 2022.09.01 |
---|---|
HashMap 사용 방법 및 예제 (0) | 2022.08.16 |
ArrayList 중복 값 개수 세기(부제: Map 자료구조) (0) | 2022.07.11 |
다형성(Polymorphism) (0) | 2022.06.21 |
Optional.of 와 Optional.ofNullable 의 차이 (0) | 2022.05.13 |