UNIX 타임스탬프 변환기 (온라인 유닉스 시간 계산기)
현재 UNIX 타임스탬프
타임스탬프 → 날짜 및 시간
날짜 및 시간 → 타임스탬프
UNIX 타임스탬프 변환기 (온라인 유닉스 시간 계산기)
이 UNIX 타임스탬프 변환기를 사용하면 **UNIX 시간 (에포크 시간 / POSIX 시간)**을 날짜 및 시간으로, 또는 그 반대로 빠르게 변환할 수 있습니다. 초 및 밀리초 단위의 타임스탬프를 지원하며, 현지 시간, UTC, ISO 8601을 표시하고 클릭 한 번으로 결과를 복사할 수 있습니다.
UNIX 타임스탬프(Epoch Time / POSIX Time)란 무엇인가요?
UNIX 타임스탬프는 1970년 1월 1일 00:00:00 UTC (일명 UNIX 에포크) 이후 경과한 초 단위의 시간을 숫자로 표현한 것입니다. 실제로는 시스템, 데이터베이스, API 및 로깅에서 날짜와 시간을 저장하고 전송하는 가장 널리 사용되는 형식 중 하나입니다.
예시: 1700000000은 2023년 11월 14일 22:13:20 UTC에 해당합니다.
왜 1970년 1월 1일인가요?
에포크의 시작점(1970-01-01)은 UNIX 설계 시 실용적인 참조점으로 선택되었습니다. 이는 시스템 개발 시기와 가까우며 간단한 시간 계산을 가능하게 합니다.
초 단위 vs. 밀리초 단위 UNIX 타임스탬프
UNIX 타임스탬프는 주로 두 가지 형태로 나타납니다:
| 타임스탬프 형식 | 예시 | 일반적인 사용처 |
|---|---|---|
| 초 (s) | 1700000000 | 데이터베이스, 백엔드, API, 파일 |
| 밀리초 (ms) | 1700000000000 | JavaScript (Date.now()), 분석, 상세 로그 |
가지고 있는 타임스탬프가 어떤 형식인지 어떻게 알 수 있나요?
- 초 단위는 현재 날짜의 경우 일반적으로 10자리 숫자입니다.
- 밀리초 단위는 일반적으로 13자리 숫자이며, 약 1000배 더 큽니다.
- 대략적으로: 값이 10¹²보다 크면, 거의 확실히 밀리초입니다.
UNIX 타임스탬프 변환기 사용 방법
1) 타임스탬프 → 날짜 및 시간
- UNIX 타임스탬프를 입력 필드에 붙여넣거나 지금 (현재 UNIX 시간) 버튼을 클릭하세요.
- 타임스탬프가 밀리초 단위인 경우, 밀리초 사용 옵션을 활성화하세요.
- 변환 버튼을 클릭하세요 (또는 Enter 키를 누르세요).
- 현지 시간, UTC, ISO 8601 형식으로 변환된 결과가 표시됩니다.
- 결과를 클릭하면 클립보드에 복사됩니다.
2) 날짜 및 시간 → 타임스탬프
- 양식에서 날짜 및 시간을 선택하세요.
- 변환 버튼을 클릭하세요.
- 결과는 초 및 밀리초 단위의 타임스탬프로 제공됩니다.
UNIX 타임스탬프는 어디에서 가장 자주 사용되나요?
IT 분야에서 시간을 다루는 거의 모든 곳에서 UNIX 시간을 접할 수 있습니다:
- 데이터베이스 – MySQL, PostgreSQL, SQLite 등에서 시간 저장 및 비교.
- API – REST/GraphQL은 종종 타임스탬프를 시간으로 반환합니다 (쉬운 직렬화).
- 로그 및 모니터링 – 시간별 이벤트의 정확한 정렬.
- Git – 커밋에는 시간 정보가 포함됩니다.
- 파일 시스템 – mtime/ctime/atime (최종 수정 시간 등)과 같은 시간.
- JWT –
iat(발급 시간) 및exp(만료 시간) 클레임은 일반적으로 에포크 초 단위입니다. - Linux/Unix 셸 –
date +%s는 현재 타임스탬프를 반환합니다. - JavaScript –
Date.now()는 밀리초 단위로 시간을 반환합니다.
UNIX 시간 변환 실용 예제
JavaScript (타임스탬프 ↔ 날짜)
// 현재 초 단위 UNIX 타임스탬프
const tsSeconds = Math.floor(Date.now() / 1000);
// 현재 밀리초 단위 타임스탬프
const tsMs = Date.now();
// 타임스탬프 (초) -> 날짜
const dateFromSeconds = new Date(1700000000 * 1000);
console.log(dateFromSeconds.toISOString());
// 날짜 -> 타임스탬프 (초)
const ts = Math.floor(new Date("2024-01-01T00:00:00Z").getTime() / 1000);
console.log(ts);
Python (타임스탬프 ↔ datetime)
import time
from datetime import datetime, timezone
# 현재 초 단위 타임스탬프
ts = int(time.time())
# 타임스탬프 -> datetime (UTC)
dt_utc = datetime.fromtimestamp(1700000000, tz=timezone.utc)
# 날짜 -> 타임스탬프
ts2 = int(datetime(2024, 1, 1, tzinfo=timezone.utc).timestamp())
SQL (MySQL)
-- 현재 UNIX 타임스탬프 (초)
SELECT UNIX_TIMESTAMP();
-- 타임스탬프 -> 날짜
SELECT FROM_UNIXTIME(1700000000);
-- 날짜 -> 타임스탬프
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');
시간대: UTC, 현지 시간 및 ISO 8601
UNIX 타임스탬프는 항상 UTC입니다. – 시간대나 서머타임 정보가 포함되어 있지 않습니다. 현지 시간으로의 변환은 브라우저, 서버 또는 사용되는 라이브러리 설정에 따라 달라집니다.
알아두면 유용한 용어:
- UTC – 서머타임이 없는 전역 표준 시간.
- GMT – 일반적인 사용에서 UTC와 거의 동일합니다.
- 오프셋 – UTC와의 시차 (예: 서울 UTC+9).
UNIX 타임스탬프의 한계 및 2038년 문제
2038년 문제 (Year 2038 Problem)
일부 32비트 시스템에서는 타임스탬프가 int32로 저장되며 최대값은 2,147,483,647입니다. 이는 2038년 1월 19일 03:14:07 UTC에 해당합니다. 이 값을 초과하면 오버플로우가 발생하여 시간이 잘못 표시될 수 있습니다. 최신 64비트 시스템은 일반적으로 이 문제가 없습니다.
64비트 UNIX 시간의 범위
64비트 값은 매우 광범위한 기간 (실제로는 “영원히”)을 커버합니다. 음수 값은 1970년 1월 1일 이전의 날짜를 의미합니다.
FAQ – UNIX 타임스탬프에 대한 자주 묻는 질문
UNIX 타임스탬프는 UTC인가요, 아니면 현지 시간인가요?
UNIX 타임스탬프는 항상 UTC입니다. 현지 시간은 시간대에 따라 변환될 때 생성됩니다. 따라서 변환기는 일반적으로 UTC와 현지 시간을 모두 표시합니다.타임스탬프가 초 단위인지 밀리초 단위인지 어떻게 알 수 있나요?
현재 시간의 경우 초 단위 타임스탬프는 일반적으로 10자리 숫자입니다. 밀리초 단위는 13자리 숫자이며, 대략 1000배 더 큽니다. 대략적으로: 값이 > 10¹²이면 밀리초 단위일 가능성이 높습니다.음수 UNIX 타임스탬프는 무엇을 의미하나요?
음수 타임스탬프는 1970년 1월 1일 이전의 날짜를 나타냅니다. 예를 들어,-1은 1969년 12월 31일 23:59:59 UTC에 해당합니다.
SQL에서 UNIX 타임스탬프를 어떻게 변환하나요?
MySQL에서는FROM_UNIXTIME(timestamp)를 사용하여 타임스탬프를 날짜로 변환하고, UNIX_TIMESTAMP(date)를 사용하여 날짜를 타임스탬프로 변환합니다. PostgreSQL에서는 일반적으로 TO_TIMESTAMP(timestamp)와 EXTRACT(EPOCH FROM date)를 사용합니다.