유틸리티

타임스탬프 변환, Unix Timestamp와 날짜 바꾸는 법

서버 로그에 1709251200 같은 숫자만 찍혀 있으면 몇 월 몇 일인지 알 수 없다. 이건 Unix 타임스탬프로, 1970년 1월 1일 자정(UTC)부터 경과한 초 수를 나타낸다. 개발자라면 이 숫자와 날짜를 오가는 타임스탬프 변환에 익숙해져야 한다.

Unix 타임스탬프란

Unix 타임스탬프(Epoch Time)는 1970년 1월 1일 00:00:00 UTC를 기준점(0)으로 삼고, 그 이후 흐른 초 수를 정수로 표현한 것이다. 시간대에 영향을 받지 않아서 전 세계 서버 간 시간 동기화에 적합하다.

예시 타임스탬프 1709251200
→ UTC: 2024년 3월 1일 00:00:00
→ 한국 시간(KST): 2024년 3월 1일 09:00:00 (UTC+9)

초 vs 밀리초, 헷갈리지 않기

타임스탬프에는 두 가지 단위가 있다.

단위자릿수사용 환경
초(seconds)10자리Unix/Linux, PHP, Python
밀리초(milliseconds)13자리JavaScript, Java, API 응답

1709251200은 10자리니까 초 단위, 1709251200000은 13자리니까 밀리초 단위다. 단위를 잘못 넣으면 1970년대나 수만 년 뒤 날짜가 나오니 자릿수를 먼저 확인해야 한다.

시간 형식 종류

로컬 시간
사용자의 시간대 기준. 한국에서는 KST(UTC+9)로 표시된다.
UTC
협정 세계시. 서버 로그, 국제 API에서 기준으로 쓴다.
ISO 8601
2024-03-01T00:00:00Z 형태. 국제 표준으로 JSON API에서 가장 많이 쓴다.

변환 직접 해보기

코드로 변환할 수도 있지만, 로그를 빠르게 확인하거나 특정 날짜의 타임스탬프를 알아야 할 때는 타임스탬프 변환기가 빠르다. 숫자를 넣으면 로컬, UTC, ISO 8601 세 가지 형식으로 동시에 보여주고, 반대로 날짜를 입력하면 초 단위와 밀리초 단위 타임스탬프를 함께 알려준다.

현재 시각의 타임스탬프도 실시간으로 표시되니 테스트 데이터 만들 때 유용하다.