유틸리티 소개

서버 로그에 나오는 1709251200 같은 숫자가 날짜라는 걸 알았다

서버 로그를 보다가 1709251200 같은 큰 숫자가 자주 나오길래 뭔가 했더니 Unix 타임스탬프였다. 1970년 1월 1일부터 지금까지 흐른 초 단위 시간을 숫자로 표현한 것이다.

Unix 타임스탬프란

컴퓨터 시스템에서 시간을 다룰 때 타임스탬프를 많이 쓴다. 시간대에 상관없이 전 세계가 같은 숫자로 같은 순간을 표현할 수 있다. 1709251200은 2024년 3월 1일 0시 0분 0초(UTC)를 의미한다.

밀리초 단위 타임스탬프도 있다. 1709251200000처럼 뒤에 000이 붙으면 밀리초 단위다. JavaScript의 Date.now()가 밀리초를 반환한다.

타임스탬프 변환

타임스탬프 변환기에 숫자를 입력하면 읽을 수 있는 날짜 형식으로 변환된다. 반대로 날짜를 입력하면 타임스탬프 숫자를 얻을 수 있다.

변환 예시

  • 0 → 1970-01-01 00:00:00 (UTC)
  • 1000000000 → 2001-09-09 01:46:40
  • 1709251200 → 2024-03-01 00:00:00
  • 2000000000 → 2033-05-18 03:33:20

개발에서의 활용

API 응답이나 데이터베이스에서 날짜가 타임스탬프로 저장되어 있을 때, 디버깅하려면 사람이 읽을 수 있는 형태로 바꿔야 한다. 타임스탬프 변환기를 즐겨찾기 해두면 편하다.

타임스탬프의 장점은 시간대 변환이 쉽다는 것이다. 같은 숫자에 시간대만 바꿔서 적용하면 어느 나라의 시간인지 알 수 있다. 글로벌 서비스에서 시간을 다룰 때 필수다.

2038년 문제

32비트 Unix 시스템에서는 2038년 1월 19일에 타임스탬프가 오버플로우된다. 2147483647(약 21억) 이후 숫자를 표현할 수 없기 때문이다. 그래서 64비트 타임스탬프로 넘어가는 추세다.