유닉스 타임스탬프란? — 10자리·13자리와 변환법
서버 로그나 API 응답을 열어 보면 1781049600 같은 정체불명의 숫자가 시각 자리에 들어 있습니다. 이것이 유닉스 타임스탬프(Unix timestamp)입니다. 원리를 한 번 이해해 두면 로그 분석, API 디버깅, 엑셀 정리가 훨씬 수월해집니다.
타임스탬프의 원리 — 1970년 1월 1일
유닉스 타임스탬프는 1970년 1월 1일 0시 0분 0초(UTC)를 기준점(에포크, epoch)으로 삼아, 거기서부터 몇 초가 흘렀는지를 나타내는 숫자입니다.
0→ 1970-01-01 00:00:00 UTC1000000000→ 2001-09-09 (10억 초)1781049600→ 2026-06-10 00:00:00 UTC
숫자 하나면 시간대·날짜 형식·언어와 무관하게 같은 순간을 가리킬 수 있어, 컴퓨터끼리 시각을 주고받는 표준처럼 쓰입니다.
10자리 vs 13자리 — 초와 밀리초
같은 시각인데 자릿수가 다른 두 값을 만나게 됩니다.
| 자릿수 | 단위 | 주로 쓰는 곳 | 예시 |
|---|---|---|---|
| 10자리 | 초(s) | 유닉스/리눅스, 서버 로그, DB | 1781049600 |
| 13자리 | 밀리초(ms) | JavaScript(Date.now()), Java | 1781049600000 |
UTC와 한국 시간(KST)의 9시간
타임스탬프는 항상 UTC(협정 세계시) 기준입니다. 한국 표준시(KST)는 UTC+9, 즉 UTC보다 9시간 빠릅니다. 타임스탬프 1781049600은 UTC로 6월 10일 0시이지만, 한국 시간으로는 6월 10일 오전 9시입니다. 해외 서비스 로그를 볼 때 "기록이 9시간 어긋난다"는 혼란의 대부분이 여기서 옵니다. 도구가 UTC를 보여주는지, 내 지역 시간을 보여주는지부터 확인하세요.
엑셀·코드에서 변환하기
- 엑셀/구글 시트:
=A1/86400 + DATE(1970,1,1) + 9/24— 초 단위 타임스탬프를 한국 시간 날짜로. (하루 = 86,400초,9/24가 KST 보정) - JavaScript:
new Date(1781049600 * 1000)— 초 단위면 1000을 곱해 밀리초로. - Python:
datetime.fromtimestamp(1781049600)— 실행 환경의 시간대로 변환됩니다.
한두 개만 빠르게 확인할 때는 타임스탬프 변환기에 붙여넣는 것이 가장 빠릅니다. 현재 시각의 타임스탬프도 바로 복사할 수 있습니다.
1970년 1월 1일 0시(UTC)부터 지금까지 흐른 시간을 초 단위 숫자 하나로 나타낸 것입니다. 시간대·언어와 무관하게 전 세계 어디서나 같은 값이라 서버 로그, 데이터베이스, API에서 시각을 기록하는 표준처럼 쓰입니다.
10자리는 초 단위, 13자리는 밀리초(1/1000초) 단위입니다. 같은 시각이라면 13자리 값이 10자리 값의 1000배입니다. JavaScript의 Date.now()는 13자리(밀리초)를, 유닉스 date 명령과 많은 서버 로그는 10자리(초)를 사용합니다. 변환 도구에 넣을 때 자릿수가 안 맞으면 1970년이나 먼 미래로 표시되니 1000을 곱하거나 나눠 맞춰 주세요.
타임스탬프 자체는 UTC(협정 세계시) 기준이고, 한국 표준시(KST)는 UTC보다 9시간 빠르기 때문입니다. 예를 들어 타임스탬프가 UTC로 0시를 가리키면 한국 시간으로는 같은 날 오전 9시입니다. 변환 도구가 어느 시간대로 보여주는지(UTC인지 내 지역 시간인지)를 먼저 확인하면 헷갈리지 않습니다.