Unix Timestamp(에포크 시간) 이해하기
Unix Timestamp는 1970년 1월 1일 00:00:00 UTC(에포크) 이후 경과한 시간을 정수로 표현한 값입니다. 운영체제와 프로그래밍 언어가 시간대와 무관한 절대 시간을 표현할 때 사용하는 표준 단위입니다. 보통 초 단위로 사용되지만, JavaScript의 Date.now()처럼 밀리초 단위로 다루기도 합니다.
초와 밀리초 자동 판별
본 도구는 입력 값의 자릿수를 분석해 초/밀리초를 자동으로 판별합니다.
- 10자리: 초 단위 (예: 1747400000 → 2025-05-16 KST)
- 13자리: 밀리초 단위 (예: 1747400000000)
- 16자리: 마이크로초 단위 (Postgres·Python 일부)
주요 시간대
- KST (Korea Standard Time, UTC+9): 한국 표준시. 일광절약시간(DST) 없음
- UTC (Coordinated Universal Time): 협정 세계시. 모든 시간대의 기준
- ISO 8601:
2026-05-17T10:30:00+09:00처럼 시간대 오프셋을 명시한 표준 표기
언어별 변환 예시
- JavaScript:
Date.now()는 밀리초,Math.floor(Date.now()/1000)는 초 - Python:
time.time()은 부동소수 초,int(time.time())로 정수화 - Go:
time.Now().Unix()는 초,time.Now().UnixMilli()는 밀리초 - Java:
Instant.now().getEpochSecond(),System.currentTimeMillis() - MySQL:
UNIX_TIMESTAMP(),FROM_UNIXTIME(1747400000)
2038년 문제(Y2K38)
32비트 정수의 최대값(2,147,483,647)을 초로 환산하면 2038년 1월 19일 03:14:07 UTC가 됩니다. 이 시각을 넘으면 32비트 부호 있는 정수가 오버플로우되어 음수로 변하는 'Y2K38' 문제가 발생합니다. 현대 시스템은 대부분 64비트 정수를 사용해 이 문제를 회피했지만, 임베디드·레거시 시스템에서는 여전히 주의가 필요합니다.
자주 묻는 질문 (FAQ)
Q. 입력한 값이 초인지 밀리초인지 어떻게 판별하나요?
A. 본 도구는 자릿수가 10~11자리면 초, 13자리면 밀리초로 자동 판별합니다. 의심스러운 경우 결과의 '판별값' 표시를 확인하세요.
Q. 마이너스 타임스탬프도 가능한가요?
A. 가능합니다. 1970년 이전 시각은 음수로 표현되며, JavaScript도 이를 지원합니다.
Q. KST와 UTC 시간 차이가 항상 9시간인가요?
A. 네, 한국은 1954~1961년 일부 기간을 제외하고 일광절약시간을 시행하지 않아 항상 UTC+9입니다.
Q. 입력값은 저장되나요?
A. 마지막 입력값만 localStorage에 임시 저장됩니다. 서버로 전송하지 않습니다.