현재 날짜/시간 값을 초 단위 또는 밀리세컨드 단위로 변환하는 방법에 대해서 알아보겠습니다.

1. System.currentTimeMillis()를 이용한 방법

System.currentTimeMillis()는 현재 시스템의 시간을 밀리초(milliseconds) 단위 값으로 리턴합니다.

이 값은 UTC 시간으로, 즉, 1970년 1월 1일 00:00:00 UTC (협정 세계시)로부터 현재까지 경과한 시간입니다. 이 값을 이용하여 시스템의 상대적인 시간을 계산하거나 비교할 수 있습니다.

  • System.currentTimeMillis() : UTC 시간을 밀리세컨드 단위로 리턴
public class Example {

    public static void main(String[] args) {

        long currentTimeMillis = System.currentTimeMillis();
        System.out.println("Current Time in Milliseconds: " + currentTimeMillis);
    }
}

Output:

Current Time in Milliseconds: 1693130448316

초 단위로 변경

위에서 가져온 밀리세컨드 값을 1000으로 나눠서 초 단위로 변환할 수 있습니다.

long currentTimeMillis = System.currentTimeMillis() / 1000;
System.out.println("Current Time in Seconds: " + currentTimeMillis);

2. LocalDateTime.toEpochSecond()를 이용한 방법

LocalDateTime.toEpochSecond()는 LocalDateTime의 시간을 Epoch(UTC) 시간으로 변환합니다.

  • toEpochSecond()가 리턴하는 값의 단위는 second으며, Milliseconds로 변환하려면 1000을 곱하면 됩니다.
  • LocalDateTime.now() : 현재 날짜/시간 정보가 있는 LocalDateTime 객체 리턴
  • currentTime.toEpochSecond(ZoneOffset.UTC) : LocalDateTime을 UTC로 변경
import java.time.LocalDateTime;
import java.time.ZoneOffset;

public class Example {

    public static void main(String[] args) {

        LocalDateTime currentTime = LocalDateTime.now();
        long secondsSinceEpoch = currentTime.toEpochSecond(ZoneOffset.UTC);
        System.out.println("Current Time in Seconds: " + secondsSinceEpoch);
    }
}

Output:

Current Time in Seconds: 1693162882