서버 로그에 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 세 가지 형식으로 동시에 보여주고, 반대로 날짜를 입력하면 초 단위와 밀리초 단위 타임스탬프를 함께 알려준다.
현재 시각의 타임스탬프도 실시간으로 표시되니 테스트 데이터 만들 때 유용하다.