Unix 타임스탬프: 날짜를 망치는 네 가지 함정
Unix 타임스탬프는 1970-01-01 UTC 이후의 초 수일 뿐입니다. 단순하지만 — 타임스탬프는 그 어떤 형식보다 많은 날짜 버그를 만듭니다. 네 가지 함정이 대부분을 설명합니다.
1. 초 vs 밀리초
JavaScript의 Date.now()는 밀리초를 돌려줍니다; 고전 Unix 시간과 대부분의 백엔드 로그는 초를 씁니다. 10자리면 초, 13자리면 밀리초. 섞으면 2026년이 서기 53,000년 — 혹은 1970년의 날짜가 됩니다.
2. UTC vs 현지 시간
타임스탬프 자체에는 시간대가 없습니다 — 어디서나 같은 순간입니다. 버그는 서버 시간대로 변환하거나, 2026-09-01 08:00 같은 문자열을 어느 시간대인지 밝히지 않고 파싱할 때 생깁니다.
3. 서머타임 점프
서머타임이 있는 시간대는 1년에 두 번 한 시간씩 움직입니다. 여름과 겨울의 현지 09:00으로 저장된 회의는 서로 다른 UTC 순간 두 개입니다. UTC로 저장하고 표시할 때만 변환하면 이 부류의 버그가 사라집니다.
4. 로케일 의존 파싱
03/04/2026은 어떤 나라에서는 3월 4일, 다른 나라에서는 4월 3일입니다. 텍스트에서 날짜를 파싱하려면 명시적 형식이 필요합니다 — 절대 추측 금지.
실전 규칙: UTC로 저장, 표시할 때만 변환, 형식은 항상 명시. 타임스탬프나 날짜 문자열을 검사하려면 타임스탬프 변환기나 세계 시계 나란히 보기 — 둘 다 브라우저에서 실행됩니다.