언어/JAVA
[JAVA] UTC, GMT
steadyMan
2024. 7. 7. 23:58
막연하게 "국제 표준 시간"으로 알고 있다가 막상 시간대를 고려해야 하는 상황에 와서 정리를 시작했습니다!
UTC(Coordinated Universal Time)
세계 표준 시간대로 영국을 기준으로 전 세계의 지역에 따라 시차(시간)을 규정한 표준 시로 GMT와 같은 시간대를 공유한다.
GMT(Greenwich Mean Time)
영국 그리니치 천문대를 기준으로 한 시간대로 UTC와 동일한 시간대를 나타대며, 표기방법도 동일하다.
결국 UTC, GMT는 측정 기준만 다른 동일한 시간대의 국제 표준시간이다.
그래서 각 나라 혹은 도시는 UTC, GMT를 기준으로 시간대가 결정된다.
우리나라의 경우 UTC에 9시간을 더한 시간대인 UTC+9을 표준시로 쓰며, 이 시간을 KST(한국 표준시)라고 합니다.
그렇다면 자바에서 시간대를 어떻게 활용할 수 있는지 방법을 찾아봤습니다.
public static void main(String[] args) {
// 현재 UTC 시간
ZonedDateTime utcTime = ZonedDateTime.now(ZoneId.of("UTC"));
System.out.println("Current UTC Time: " + utcTime);
// 현재 GMT 시간
ZonedDateTime gmtTime = ZonedDateTime.now(ZoneId.of("GMT"));
System.out.println("Current GMT Time: " + gmtTime);
// 특정 시간대 예: Asia/Seoul(KST)
ZonedDateTime seoulTime = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));
System.out.println("Current Seoul Time: " + seoulTime);
}
// 출력 결과
Current UTC Time: 2024-07-14T14:24:02.864417300Z[UTC]
Current GMT Time: 2024-07-14T14:24:02.867420500Z[GMT]
Current Seoul Time: 2024-07-14T23:24:02.894421900+09:00[Asia/Seoul]
time 패키지의 ZoneId, ZonedDateTime을 활용하여 UTC, GMT기반의 각 지역별 시간대를 구할 수 있으며, ZoneId를
생성할때 지역/도시 형태의 문자열을 전달하여 생성합니다. 이렇게 구한 시간을 ISO 8601 형식으로 변경하여
로직에 활용 할 수 있겠습니다.