이게 뭔가요?
Unix 타임스탬프는 1970년 1월 1일 0시(UTC)를 기준으로 흐른 시간을 초(또는 밀리초) 단위 정수로 나타낸 값입니다. 이 도구는 타임스탬프를 사람이 읽는 현지·UTC·ISO 8601 날짜로 바꾸고, 반대로 날짜를 타임스탬프로 되돌립니다. 현재 시각도 초/밀리초 단위로 실시간 표시하며, 입력값이 지금으로부터 얼마나 떨어져 있는지 상대 시간도 보여줍니다.
언제 쓰나요?
DB나 로그에 1751692800 같은 숫자로 저장된 시각을 눈으로 확인할 때, 토큰의 exp·iat 값을 날짜로 풀어볼 때, 또는 특정 날짜의 타임스탬프를 코드나 테스트에 하드코딩할 때 씁니다.
실무에서 자주 틀리는 점
- 초 vs 밀리초. Unix 표준과 대부분의 백엔드는 초를, JavaScript의
Date.now()는 밀리초를 씁니다. 자릿수(10자리 vs 13자리)를 확인하지 않으면 1970년이나 먼 미래로 튑니다. - 타임존. 타임스탬프 자체는 항상 UTC 기준입니다. 화면에 보이는 “현지 시각”은 브라우저 타임존으로 변환된 것이라, 서버 로그와 비교할 땐 UTC 값을 봐야 합니다.
- 2038년 문제. 32비트 정수로 초를 담으면 2038년에 넘칩니다. 지금은 대부분 64비트를 쓰지만 오래된 시스템에선 여전히 조심해야 합니다.
실무에서 — 로그의 타임스탬프가 자꾸 1970년으로 찍혀서 당황한 적이 있다. 알고 보니 백엔드는 초 단위로 주는데 프론트에서
new Date()에 그대로(밀리초로) 넣은 거였다. 반대로 서버 로그(UTC)와 관리자 화면(KST)이 9시간 차이 나 “같은 이벤트인데 시간이 다르다”는 오해로 30분을 쓴 적도 있다. 지금은 로그에 항상 UTC ISO 문자열을 같이 남긴다.