유틸리티

Unix 타임스탬프란? 날짜 변환 방법과 개발 활용법

서버 로그에 1709251200이라는 숫자가 찍혀 있다. 이게 오류가 발생한 시각인데, 눈으로 봐서는 몇 월 며칠인지 전혀 알 수 없다. 이 숫자가 Unix 타임스탬프다.

Unix 타임스탬프란

1970년 1월 1일 00:00:00 UTC부터 경과한 초(秒) 수를 숫자로 표현한 것이다. 이 기준 시점을 Epoch라고 부른다. 예를 들어 1709251200은 2024년 3월 1일 00:00:00 UTC를 뜻한다.

왜 숫자로 저장하나
"2024-03-01 09:00:00"같은 문자열보다 숫자 하나가 저장, 비교, 정렬에서 훨씬 빠르다. 타임존 문제도 없다. UTC 기준 숫자 하나면 전 세계 어디서든 같은 시점을 가리킨다.
초 vs 밀리초
10자리 숫자는 초 단위(Unix Timestamp), 13자리 숫자는 밀리초 단위다. JavaScript의 Date.now()는 밀리초를 반환한다.

변환 예시

타임스탬프날짜 (KST)비고
01970-01-01 09:00:00Epoch 기준점
10000000002001-09-09 10:46:4010억 초
17092512002024-03-01 09:00:00-
17724384002026-03-01 09:00:00-
참고 KST(한국 표준시)는 UTC+9다. 같은 타임스탬프라도 서울에서 보면 UTC보다 9시간 앞선 시각으로 표시된다.

타임스탬프 변환하는 법

타임스탬프 변환기에 숫자를 넣으면 로컬 시간, UTC, ISO 8601 형식으로 한 번에 나온다. 반대로 날짜를 입력해서 타임스탬프를 구하는 것도 된다. 현재 시각의 타임스탬프도 실시간으로 표시되니까 복사해서 바로 쓸 수 있다.

개발에서 자주 쓰이는 곳

  • 로그 분석: 오류 발생 시각을 사람이 읽을 수 있는 날짜로 변환
  • API 응답: created_at, updated_at 필드가 타임스탬프로 내려올 때
  • 캐시 만료: TTL(Time To Live)을 초 단위로 설정
  • JWT 토큰: exp(만료 시간) 클레임이 타임스탬프 형식
  • 데이터베이스: 레코드 생성·수정 시각 저장

타임스탬프는 시간대에 독립적이라서 글로벌 서비스에서 특히 유용하다. 서울과 뉴욕의 사용자가 같은 타임스탬프를 보면 각자의 로컬 시간으로 해석하면 된다.