* 10자리(초), 13자리(밀리초) 자동 감지
Unix Timestamp(Epoch Time)는 1970년 1월 1일 00:00:00 UTC(협정 세계시)를 기준(0)으로 경과한 시간을 초 단위 정수로 나타낸 값입니다. 운영체제, 프로그래밍 언어, 데이터베이스마다 날짜 표기 방식이 제각각이라도 이 숫자 하나만 있으면 시각을 명확하게 주고받을 수 있어, 시간대(Timezone)에 상관없이 사용할 수 있는 전 세계 공통의 시간 기준점으로 널리 쓰입니다.
같은 순간이라도 언어/플랫폼에 따라 자릿수가 다릅니다. 예를 들어 자바스크립트의 Date.now()는
밀리초(13자리, 예: 1735689600000) 단위를 반환하지만, 대부분의 백엔드 언어나 DB(MySQL UNIX_TIMESTAMP() 등)는
초(10자리, 예: 1735689600) 단위를 사용합니다. 이 도구는 입력한 숫자의 자릿수를 보고 10자리 이하면 초,
그 이상이면 밀리초로 자동 판단해서 변환합니다.
createdAt: 1735689600처럼 찍힌 값이 실제 언제인지 바로 확인할 때.exp, iat 클레임에 담긴 타임스탬프를 실제 날짜로 변환해 만료 여부를 검증할 때.Q. 변환된 날짜가 실제 시각과 몇 시간 차이가 나요.
Unix Timestamp 자체는 시간대와 무관한 절대값이지만, 이를 사람이 읽는 날짜로 바꿀 땐 브라우저의 로컬 시간대(예: KST, UTC+9)를
기준으로 표시합니다. 다른 시간대의 값과 비교 중이라면 이 차이를 고려해야 합니다.
Q. 2038년 문제가 뭔가요?
초 단위 타임스탬프를 32비트 정수로 저장하는 옛날 시스템은 2038년 1월 19일 이후 값을 표현할 수 없어 오버플로가 발생합니다.
대부분의 최신 시스템은 64비트를 사용해 이 문제에서 자유롭지만, 오래된 임베디드 시스템에서는 여전히 이슈가 될 수 있습니다.