유틸리티

Unix 타임스탬프 변환, 로그 속 숫자를 날짜로 읽는 법

서버 에러 로그를 뒤지다 보면 시간 정보가 1709251200처럼 숫자 10자리로 찍혀 있다. 이건 Unix 타임스탬프라고 부르는 형식인데, 1970년 1월 1일 0시(UTC)부터 흘러간 초 수를 나타낸다. 사람 눈에는 의미 없는 숫자지만, 컴퓨터에게는 시간을 다루는 가장 단순한 방법이다.

타임스탬프가 쓰이는 이유

날짜를 "2026-03-01 09:00:00" 같은 문자열로 저장하면 시간대(timezone) 문제가 생긴다. 한국의 오전 9시와 미국의 오전 9시는 다른 시각이다. 타임스탬프는 UTC 기준 절대 시각을 숫자 하나로 표현하기 때문에 어느 나라에서든 같은 순간을 가리킨다. 서버 로그, API 응답, 데이터베이스에서 시간을 다룰 때 타임스탬프가 기본인 이유다.

자주 마주치는 타임스탬프 예시

타임스탬프형식변환 결과(KST)
0초(s)1970-01-01 09:00:00
1709251200초(s)2024-03-01 09:00:00
1709251200000밀리초(ms)2024-03-01 09:00:00
1772434800초(s)2026-03-01 00:00:00

10자리면 초 단위, 13자리면 밀리초 단위다. JavaScript의 Date.now()는 밀리초를 반환하고, Python의 time.time()은 초를 반환한다.

숫자를 날짜로 바꾸는 법

코드에서는 언어별 내장 함수를 쓰면 된다. 하지만 로그를 훑어보면서 특정 시점을 빠르게 확인하고 싶을 때는 타임스탬프 변환기에 숫자를 붙여넣는 게 낫다. 로컬 시간, UTC, ISO 8601 세 가지 형식으로 동시에 보여주고, 반대로 날짜를 입력하면 타임스탬프 숫자가 나온다. 현재 시각의 타임스탬프도 실시간으로 표시돼서 테스트 데이터를 만들 때 참고할 수 있다.

TIP API에서 받은 타임스탬프가 자릿수로 초인지 밀리초인지 헷갈릴 때, 초 단위를 밀리초로 착각하면 1970년대 날짜가 나온다. 변환 결과가 1970년이면 단위를 바꿔서 다시 넣어보면 된다.

로그 분석할 때 타임스탬프 하나 때문에 계산기를 꺼내는 건 시간 낭비다. 숫자를 복사해서 넣으면 1초면 끝난다.