[Java] Instant 클래스와 주요 메서드

Henson·2024년 11월 1일

Java

목록 보기
13/22
post-thumbnail

Instant 클래스

Instant 는 UTC(협정 세계시)를 기준으로 하는, 시간의 한 지점을 나타낸다. Instant 는 날짜와 시간을 나노초 정밀도로 표현하며, 1970년 1월 1일 0시 0분 0초(UTC 기준)를 기준으로 경과한 시간으로 계산된다.

쉽게 이야기해서 Instant 내부에는 초 데이터만 들어있다. (나노초 포함)

따라서 날짜와 시간을 계산에 사용할 때는 적합하지 않다.

Instant 주요 메서드

생성

  • now() : 현재 UTC 기준의 Instant 를 반환한다.
  • ofEpochMilli(long epochMilli) : 주어진 에폭시 시간(밀리초)을 기준으로 Instant
    생성한다.
  • ofEpochSecond(long epochSecond) : 주어진 에폭시 시간(초)을 기준으로 Instant 를 생성
    한다.
  • ofEpochSecond(long epochSecond, long nanoAdjustment) : 주어진 에폭시 시간(초)과 나노초 조정값을 기준으로 Instant 를 생성한다.
  • from() : 다른 타입의 날짜와 시간을 기준으로 Instant 를 생성한다. 참고로 Instant 는 UTC를 기준으로 하기 때문에 시간대 정보가 필요하다. 따라서 LocalDateTime 은 사용할 수 없다.

계산

  • plusSeconds() : 초를 더한다. 초, 밀리초, 나노초 정도만 더하는 간단한 메서드가 제공된다.

변환

  • atOffset(ZoneOffset offset) : InstantOffsetDateTime으로 변환한다.
  • atZone(ZoneId zone) : Instant를 특정 시간대의 ZonedDateTime으로 변환한다.
  • toEpochMilli() : Instant의 에폭시 시간을 밀리초 단위로 반환한다.

조회

  • getEpochSecond() : 에포크 시간인 UTC 1970년 1월 1일 0시 0분 0초를 기준으로 흐른 초를 반환한다.
  • getNano() : 현재 초의 나노초 부분을 반환한다.
profile
세계 최고의 개발자가 되고 말겠어.

0개의 댓글