유닉스 타임스탬프 변환
WebToolBox에서 제공하는 무료 날짜/시간 도구인 유닉스 타임스탬프 변환 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.
유닉스 -> ISO
유닉스 타임스탬프(Unix Timestamp)의 개념과 에포크(Epoch)
유닉스 타임스탬프(Unix Timestamp, 또는 POSIX Time)는 1970년 1월 1일 00:00:00 협정 세계시(UTC)를 기점(Epoch)으로 현재까지 경과한 시간을 '초(Seconds)' 또는 '밀리초(Milliseconds)' 단위 정수로 환산한 값입니다.
서로 다른 국가의 표준 시간대(Timezone)나 서머타임(Daylight Saving Time)의 영향을 받지 않는 전 세계 공통의 절대 시간 지표이므로, 데이터베이스 레코드의 생성/수정 일시, JWT 토큰 만료 시간(exp), 로그 분석, 캐시 만료 정책 등 컴퓨터 시스템 전반의 시간 표준으로 사용됩니다.
초 단위 타임스탬프는 대개 10자리 정수이며, 고정밀 연산이 필요한 웹 브라우저나 최신 프로그래밍 언어에서는 13자리 밀리초(ms) 단위를 널리 채택하고 있습니다.
입출력 예시 (Examples)
| 입력 (Input) | 결과 (Output) | 설명 |
|---|---|---|
| 0 | 1970-01-01 00:00:00 UTC | 유닉스 에포크의 시작점 |
| 1700000000 | 2023-11-14 22:13:20 UTC (한국시간 2023-11-15 07:13:20 KST) | 10자리 초 단위 타임스탬프 변환 |
| 1700000000000 | 2023-11-14 22:13:20.000 UTC | 13자리 밀리초 단위 타임스탬프 변환 |
시간 단위별 타임스탬프 자릿수 및 용도 비교
| 시간 단위 | 자릿수 | 형식 예시 | 주요 활용 기술 및 플랫폼 |
|---|---|---|---|
| 초 (Seconds) | 10자리 | 1700000000 | Unix 커널, Linux 시스템 시간, Python time.time(), JWT exp 클레임 |
| 밀리초 (Milliseconds) | 13자리 | 1700000000000 | JavaScript Date.now(), Java System.currentTimeMillis() |
| 마이크로초 (Microseconds) | 16자리 | 1700000000000000 | 고정밀 분산 로그, PostgreSQL microsecond 타임스탬프 |
| 나노초 (Nanoseconds) | 19자리 | 1700000000000000000 | Go time.Now().UnixNano(), 고성능 금융 거래 체결 시스템 |
유닉스 타임스탬프 변환기 사용 방법
- 상단 입력창에 변환하고자 하는 타임스탬프 숫자(10자리 또는 13자리)를 입력합니다.
- 날짜를 타임스탬프로 변환하려면 달력 및 시계 선택기를 통해 원하는 일시를 선택합니다.
- 실시간으로 협정 세계시(UTC)와 한국 표준시(KST, UTC+9) 및 로컬 시간대가 동시 계산됩니다.
- '현재 시간' 버튼을 클릭하면 지금 이 순간의 최신 실시간 타임스탬프를 즉시 확인할 수 있습니다.
개발자를 위한 시간 처리 실무 팁
- 10자리 vs 13자리 주의: 10자리(초) 타임스탬프를 자바스크립트 `new Date(ts)`에 그대로 넣으면 1970년 1월로 잘못 계산됩니다. 자바스크립트에서는 반드시 1,000을 곱해 밀리초로 넘겨야 합니다.
- 2038년 문제(Year 2038 Problem): 32비트 부호 있는 정수로 타임스탬프를 저장할 경우 2038년 1월 19일 03:14:07 UTC에 오버플로가 발생합니다. 최신 DB와 시스템에서는 반드시 64비트 정수(BIGINT)를 사용해야 합니다.
- DB 저장 시 UTC 원칙: 데이터베이스에는 항상 UTC 기준 타임스탬프로 저장하고, 사용자 화면에 표시할 때만 사용자의 브라우저 로컬 시간대로 포맷팅하는 것이 원칙입니다.
프로그래밍 언어별 사용 예제 (Code Examples)
JavaScript / TypeScriptjavascript
// 현재 타임스탬프 구하기
const sec = Math.floor(Date.now() / 1000); // 10자리 초
const ms = Date.now(); // 13자리 밀리초
// 타임스탬프를 사람이 읽는 날짜로 변환
const date = new Date(sec * 1000);
console.log(date.toISOString()); // 2023-11-14T22:13:20.000ZPython 3python
import time
from datetime import datetime, timezone
# 현재 초 단위 타임스탬프
current_sec = int(time.time())
# 타임스탬프를 UTC 날짜로 변환
dt = datetime.fromtimestamp(current_sec, tz=timezone.utc)
print(dt.strftime('%Y-%m-%d %H:%M:%S UTC'))FAQ (자주 묻는 질문)
- 유닉스 타임스탬프에서 타임존(시간대)은 어떻게 반영되나요?
- 유닉스 타임스탬프 자체는 전 세계 어디서나 동일한 UTC 0시 기준의 절대값입니다. 서울(KST, UTC+9)이든 뉴욕(EST, UTC-5)이든 동일한 순간에는 같은 타임스탬프를 가지며, 화면에 표기할 때 오프셋(+9시간 등)을 더해 표시합니다.
- 10자리 숫자와 13자리 숫자는 어떻게 구분하나요?
- 현재 연도 기준으로 10자리는 초(Seconds) 단위이며, 13자리는 밀리초(Milliseconds) 단위입니다. 예를 들어 17억 대 숫자는 초 단위이며, 1조 7천억 대 숫자는 밀리초 단위입니다.
- 2038년 문제(Y2K38)는 이미 해결되었나요?
- 64비트 운영체제와 최신 프로그래밍 언어, 64비트 데이터베이스에서는 이미 해결되었습니다. 64비트 타임스탬프는 앞으로 약 2,920억 년 동안 안전합니다.
- 윤초(Leap Second)는 타임스탬프에 어떻게 적용되나요?
- POSIX 표준에 따라 유닉스 타임스탬프는 하루를 정확히 86,400초로 고정하여 처리합니다. 윤초가 발생할 때는 마지막 초를 반복하거나 시간 드리프트(Smearing) 방식으로 보정합니다.
- 음수(-) 타임스탬프도 존재하나요?
- 네, 1970년 1월 1일 UTC 이전의 날짜는 음수 타임스탬프로 표현됩니다. 예를 들어 -86400은 1969년 12월 31일 00:00:00 UTC를 가리킵니다.