시간과 날짜
유닉스 타임스탬프 변환기
유닉스 타임스탬프를 읽기 쉬운 UTC·현지 날짜·시각으로 변환하거나, 날짜를 에포크 타임스탬프로 되돌립니다.
유닉스 타임스탬프는 1970년 1월 1일 UTC 이후의 정수 초를 셉니다. 값이 13자리면 밀리초이므로 먼저 1000으로 나누십시오.
유닉스 시간이 날짜로 변환되는 방법
유닉스 타임스탬프는 에포크라 불리는 1970년 1월 1일 00:00:00 UTC 이후 흐른 초 수입니다. 날짜로 바꾸려면 계산기가 86,400(하루의 초)으로 나눠 날을 찾고, 나머지로 시, 분, 초를 구하는데, 모두 UTC로 측정합니다. 예를 들어 1,700,000,000초는 2023년 11월 14일 22:13:20 UTC입니다. 반대로는 에포크에서 입력한 날짜·시각까지의 정수 초를 셉니다. 윤초는 무시하는데, 이는 거의 모든 운영체제와 데이터베이스가 값을 저장하는 방식과 같습니다.
결과는 UTC와 브라우저의 현지 시각으로 표시되며, 그리니치보다 여러 시간 앞서거나 뒤처진 곳이라면 다른 달력 날짜에 떨어질 수 있습니다. ISO 8601 줄(예: 2023-11-14T22:13:20Z)은 명료한 기록 형태로, 끝의 Z는 줄루, 곧 UTC를 뜻합니다.
| 타임스탬프 (초) | UTC 날짜·시각 | 비고 |
|---|---|---|
| 0 | 1970-01-01 00:00:00 | 에포크 |
| 1000000000 | 2001-09-09 01:46:40 | 10억 초 |
| 1700000000 | 2023-11-14 22:13:20 | 예시 값 |
| 2147483647 | 2038-01-19 03:14:07 | 32비트 부호 한계 |
초, 밀리초, 그리고 2038년 문제
가장 흔한 실수는 초와 밀리초를 혼동하는 것입니다. 대부분의 백엔드 시스템은 초를 저장하지만, 자바스크립트의 Date.now()와 많은 로그는 밀리초를 쓰는데, 이는 1,000배 크고 현재 무렵 날짜에 대해 10자리가 아니라 13자리입니다. 변환한 날짜가 먼 미래에 떨어지면, 밀리초 값을 초 칸에 붙여 넣었을 가능성이 큽니다. 타임스탬프를 부호 있는 32비트 정수로 저장하는 시스템은 2038년 1월 19일 03:14:07 UTC, 즉 표에 나온 지점에서 자리가 바닥납니다. 이것이 2038년 문제이며, 현대 시스템은 64비트 정수를 써서 피하는데, 그러면 한계가 약 2,920억 년 뒤로 밀립니다.
자주 묻는 질문
유닉스 타임스탬프는 초인가요 밀리초인가요?
관례상 1970년 이후의 정수 초입니다. 밀리초는 자바스크립트와 일부 API가 쓰며 1,000배 커서, 현재 값은 10자리가 아니라 13자리입니다. 초로 바꾸려면 1,000으로 나누십시오.
유닉스 타임스탬프는 어느 시간대를 쓰나요?
그 자체로는 없고, UTC의 단일 순간을 표시합니다. 같은 타임스탬프가 세계 곳곳에서 다른 시계 시각으로 보이므로, 이 도구는 UTC와 현지 시각을 둘 다 표시합니다.
2038년 문제란 무엇인가요?
부호 있는 32비트 정수로 저장된 타임스탬프는 2,147,483,647초, 즉 2038년 1월 19일에 넘칩니다. 그 뒤로는 음수로 되돌아갑니다. 64비트 정수는 실용적으로 한계를 없앱니다.