Unix 타임스탬프 변환기
Unix 타임스탬프 변환기는 타임스탬프와 사람이 읽을 수 있는 날짜를 서로 바꾸는 도구다. 페이지 상단에는 현재 초 단위 타임스탬프가 실시간으로 표시되고 매초 갱신된다. 첫 번째 탭은 초 또는 밀리초 타임스탬프를 UTC 시간, 로컬 시간, 현재 기준 상대 시간으로 바꾼다. 두 번째 탭은 datetime-local 입력을 초 단위와 밀리초 단위 타임스탬프로 변환한다.
초와 밀리초 구분
많은 백엔드 API는 1700000000처럼 10자리 초 단위 Unix timestamp를 사용한다. JavaScript의 Date.getTime()은 1700000000000처럼 밀리초 값을 반환한다. 페이지는 라디오 버튼으로 seconds와 milliseconds를 구분한다. seconds를 선택하면 입력값에 1000을 곱해 Date를 만들고, milliseconds를 선택하면 그대로 사용한다. 날짜를 타임스탬프로 바꿀 때는 Math.floor(ms / 1000)의 초 값과 원래 밀리초 값을 함께 보여 준다.
UTC와 로컬 시간
타임스탬프 자체에는 시간대가 들어 있지 않다. 1970-01-01 00:00:00 UTC 이후 흐른 초 또는 밀리초만 나타낸다. 그래서 페이지는 UTC 문자열과 브라우저 로컬 시간 표시를 같이 제공한다. 로그가 9시간 차이로 보인다면 값 자체가 틀린 것이 아니라 UTC와 한국 시간 표시 차이일 수 있다. 상대 시간은 Date.now()와의 차이를 초, 분, 시간, 일, 년 단위로 대략 보여 준다.
주의점
2038 문제는 초 단위 시간을 32비트 signed integer로 저장하는 오래된 시스템에서 중요하다. 현대 JavaScript Date는 더 넓은 범위를 다루지만 외부 데이터베이스나 레거시 시스템은 제한이 있을 수 있다. 감사 로그, 만료 시간, 예약 발행처럼 중요한 값은 UTC로 저장하고 표시 단계에서 사용자 시간대로 변환하는 것이 좋다.
댓글