유닉스 타임스탬프와 UTC
유닉스 에포크, 초와 밀리초 타임스탬프, 현지 시간과의 관계 설명
유닉스 타임스탬프는 1970-01-01 00:00:00 **UTC**부터 경과한 초(또는 밀리초)를 계산합니다. 시간대 정보가 없어 전 세계에서 동일한 순간을 나타내며, 현지 시간 표시는 IANA 규칙에 따라 달라집니다. 로그, API, 데이터베이스에서 널리 사용됩니다.
초 대 밀리초
- 유닉스 초: 10자리 (예: 1700000000)
- JavaScript Date: 밀리초, 13자리
- 혼동 시 1000배 오류 발생 (흔한 버그)
- 2038년 문제: 64비트 시스템에서 대부분 해결됨
현지 시간과의 관계
타임스탬프→현지: 소프트웨어가 IANA 시간대 적용. 현지→타임스탬프: 시간대+서머타임 고려 후 UTC 변환. UTC 기초와 동일 개념입니다. UTC 로그를 읽을 때는 변환로 현지 시간 변환 가능합니다.
모범 사례
- 저장/전송은 UTC/타임스탬프 사용. UI에서만 현지화
- 시간대 없는 현지 시간 문자열 저장 금지
- API 문서에 초/밀리초 명시
- 시간대 규칙: 가이드의 IANA 시간대 데이터베이스란