convertToLocalDateTimeViaInstant

Hanbyul·2023년 11월 28일

Java

목록 보기
19/23
	public LocalDateTime convertToLocalDateTimeViaInstant(Date dateToConvert) {
	    return dateToConvert.toInstant()
	      .atZone(ZoneId.systemDefault())
	      .toLocalDateTime();
	}

convertToLocalDateTimeViaInstant 메서드는
java.util.Date 객체를 java.time.LocalDateTime 객체로 변환하는 방법 중 하나.
여기서 ZoneId는 시간대를 나타내는데 사용되는 클래스.

java.util.Date 클래스는 시간대 정보를 포함하지 않고, 시간을 표현하는 객체.
반면에 java.time.LocalDateTime 클래스는 시간대 정보 없이 날짜와 시간을 나타내는 클래스.

그래서 convertToLocalDateTimeViaInstant 메서드는 다음과 같은 작업을 수행

dateToConvert.toInstant(): 
-> java.util.Date 객체에서 Instant 객체로 변환. 
Instant는 시간의 흐름에서의 특정 지점을 나타냄. 
기존 Date 객체를 Instant 객체로 변환하여 타임스탬프로써의 값을 얻음.

.atZone(ZoneId.systemDefault()): 
-> ZoneId.systemDefault()는 시스템 기본 시간대를 나타내는 ZoneId 객체를 가져옴. 
각 지역에는 고유한 시간대가 있고, 이를 ZoneId를 통해 표현. 
예를 들어 "America/New_York", "Asia/Seoul"과 같은 형태로 시간대를 나타낼 수 있음. 
.atZone() 메서드를 사용하여 해당 시간대를 기준으로 Instant 객체를 ZonedDateTime 객체로 변환.

.toLocalDateTime(): 
-> ZonedDateTime 객체에서 LocalDateTime 객체로 시간대 정보를 제거하여 순수한 날짜와 시간 정보를 얻게 됨. LocalDateTime은 시간대 정보가 없는 날짜와 시간을 나타냄.

즉, 이 메서드는 java.util.Date 객체를 java.time.LocalDateTime 객체로 변환할 때,
시스템의 기본 시간대를 기준으로
시간대 정보를 무시하고 순수한 날짜와 시간 정보만을 가져오는 과정을 수행함.

profile
공부공부

0개의 댓글