Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 toEpochSecond() 메소드란? 용도와 사용법 완벽 정리

toEpochSecond() 메소드란?

Java 9부터 LocalDate 클래스에 toEpochSecond() 메소드가 제공되어, 로컬 날짜를 에포크 초(epoch seconds)로 손쉽게 변환할 수 있습니다.

이 메소드는 LocalDate 객체를 에포크 기준 시점인 1970-01-01T00:00:00Z로부터 경과한 초 단위 값으로 변환합니다. 여기서 LocalDate는 지정된 시간(LocalTime)시간대 오프셋(ZoneOffset)과 결합되어, 1970년 1월 1일 자정을 기준으로 하는 총 초(second)를 계산하게 됩니다.

문법(Syntax)

public long toEpochSecond(LocalTime time, ZoneOffset offset)

각 파라미터의 의미는 다음과 같습니다.
- time: 날짜와 결합하여 변환할 시간 정보
- offset: 계산에 적용할 시간대 오프셋

반환값은 1970-01-01T00:00:00Z 이후 경과한 초를 나타내는 long 타입입니다.

예제 코드

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneOffset;

public class ToEpochSecondMethodTest {
    public static void main(String args[]) {
        LocalDate date = LocalDate.now();
        LocalTime time = LocalTime.now();

        System.out.println("LocalDate toEpochSecond 결과 : " + date.toEpochSecond(time, ZoneOffset.of("Z")));
        System.out.println("LocalTime toEpochSecond 결과 : " + time.toEpochSecond(date, ZoneOffset.of("Z")));
    }
}

실행 결과

LocalDate toEpochSecond 결과 : 1583496984
LocalTime toEpochSecond 결과 : 1583496984

실행 결과를 보면 두 호출 모두 동일한 값인 1583496984가 출력됩니다. 이는 날짜와 시간이 서로 다른 객체일 뿐, 실제로 표현하는 시점(instant)은 같기 때문입니다. 즉, 같은 날짜·시간·오프셋 조합이라면 어느 쪽에서 toEpochSecond()를 호출해도 동일한 에포크 초가 반환됩니다.

이처럼 toEpochSecond() 메소드는 날짜와 시간을 하나의 숫자 값으로 변환해야 할 때 유용하며, 시간 비교나 데이터 저장 등 다양한 상황에서 활용할 수 있습니다.