현재 Unix 타임스탬프 (초) -
밀리초 -

📥 Unix 타임스탬프 입력 (초 또는 밀리초 — 자동 감지)
📅 날짜 / 시간 선택
Unix (초)
—
Unix (밀리초)
—
ISO 8601 (UTC)
—
한국 시간 (KST, UTC+9)
—
영문 (RFC 2822)
—
선택 타임존
—

타임스탬프(Unix Timestamp)란?

Unix 타임스탬프(Unix timestamp)는 1970년 1월 1일 00:00:00 UTC(협정 세계시)를 기준으로 경과한 초(seconds) 수를 나타내는 정수값입니다. 이 기준 시점을 Unix Epoch 또는 Unix Origin이라고 부릅니다. 예를 들어 타임스탬프 값 0은 정확히 1970-01-01 00:00:00 UTC를 의미하고, 1000000000은 2001년 9월 9일 01:46:40 UTC입니다.

타임스탬프는 특정 시점을 숫자 하나로 표현하기 때문에, 다양한 로케일·언어·포맷 차이에 상관없이 전 세계 어느 시스템 간에도 동일한 시간을 정확히 전달할 수 있습니다. 이것이 웹 개발과 데이터베이스, 로그 기록에서 타임스탬프가 표준처럼 쓰이는 이유입니다.

왜 개발자에게 필수인가

소프트웨어를 개발하다 보면 시간 데이터를 다루는 일이 매우 빈번합니다. 다음과 같은 상황에서 타임스탬프는 필수 도구가 됩니다.

JavaScript / Python / SQL에서 타임스탬프 다루기

JavaScript

// 현재 시각을 타임스탬프로
const nowSec = Math.floor(Date.now() / 1000);   // 초
const nowMs  = Date.now();                        // 밀리초

// 타임스탬프 → Date 객체
const d = new Date(nowSec * 1000);              // 반드시 밀리초로 변환
console.log(d.toISOString());                    // "2026-05-17T00:00:00.000Z"

// KST 포맷 출력
const kst = d.toLocaleString('ko-KR', { timeZone: 'Asia/Seoul' });

Python

import time, datetime, pytz

# 현재 타임스탬프
now_ts = int(time.time())

# 타임스탬프 → datetime (UTC)
dt_utc = datetime.datetime.utcfromtimestamp(now_ts)

# KST로 변환
kst = pytz.timezone('Asia/Seoul')
dt_kst = datetime.datetime.fromtimestamp(now_ts, tz=kst)
print(dt_kst.strftime('%Y-%m-%d %H:%M:%S'))

SQL (MySQL / PostgreSQL)

-- MySQL: 타임스탬프 → 날짜
SELECT FROM_UNIXTIME(1747440000);

-- MySQL: 날짜 → 타임스탬프
SELECT UNIX_TIMESTAMP('2026-05-17 00:00:00');

-- PostgreSQL
SELECT TO_TIMESTAMP(1747440000);
SELECT EXTRACT(EPOCH FROM NOW())::BIGINT;

자주 하는 실수: 초 vs 밀리초 혼동

타임스탬프를 다루는 개발자가 가장 많이 겪는 실수는 초(seconds)와 밀리초(milliseconds)를 혼동하는 것입니다.

단위자릿수예시언어/플랫폼
초 (seconds)10자리1747440000Python time.time(), PHP time(), Unix shell
밀리초 (ms)13자리1747440000000JavaScript Date.now(), Java System.currentTimeMillis()

JavaScript에서 new Date(1747440000)을 호출하면 1970년 1월 21일이 반환됩니다. 반드시 new Date(1747440000 * 1000)처럼 1000을 곱해야 2026년 날짜가 나옵니다. 본 도구는 자릿수(10자리 → 초, 13자리 → 밀리초)를 자동 감지하여 변환합니다.

타임존 처리 주의사항 (KST = UTC+9)

Unix 타임스탬프는 항상 UTC 기준입니다. 한국 표준시 KST(Korea Standard Time)는 UTC보다 9시간 빠르므로, 같은 타임스탬프라도 표현하는 방식에 따라 날짜가 달라질 수 있습니다.

예를 들어 2026-05-17 00:00:00 UTC는 KST로 2026-05-17 09:00:00이지만, 2026-05-17 00:00:00 KST는 UTC로 2026-05-16 15:00:00입니다. 서버와 클라이언트가 서로 다른 타임존을 가정하면 9시간 차이로 인해 날짜 오류가 발생할 수 있으니 주의하세요.

가장 안전한 방법은 서버에서는 UTC로 저장하고, UI에서는 사용자 타임존으로 변환하는 것입니다. JavaScript의 Intl.DateTimeFormat API나 Python의 pytz 라이브러리를 활용하면 타임존 변환을 쉽게 처리할 수 있습니다.

ISO 8601 형식 이해하기

ISO 8601은 날짜와 시간을 표기하는 국제 표준입니다. API 응답에서 가장 많이 볼 수 있는 형식으로, 다음과 같은 규칙을 따릅니다.

형식예시설명
기본2026-05-17날짜만
시간 포함2026-05-17T09:00:00로컬 시간
UTC 명시2026-05-17T00:00:00ZZ = UTC
오프셋 포함2026-05-17T09:00:00+09:00KST 명시

FAQ

입력한 데이터가 서버로 전송되나요? ▼
아니요. 모든 변환은 브라우저의 JavaScript에서 처리됩니다. 서버로 아무것도 전송되지 않으므로 안심하고 사용하세요.
타임스탬프의 최댓값은 언제인가요? ▼
32비트 정수로 저장하는 경우 최대값은 2,147,483,647로, 이를 날짜로 변환하면 2038년 1월 19일 03:14:07 UTC입니다. 이것이 유명한 "2038년 문제(Y2K38)"입니다. 현대 시스템은 64비트를 사용하므로 사실상 문제가 없습니다.
음수 타임스탬프는 무엇을 의미하나요? ▼
음수 타임스탬프는 1970년 1월 1일 00:00:00 UTC 이전의 날짜를 의미합니다. 예를 들어 -86400은 1969년 12월 31일입니다. 대부분의 언어에서 지원하지만, 일부 시스템에서는 음수 타임스탬프를 처리하지 못할 수 있습니다.
자바스크립트에서 타임존을 고려한 변환은? ▼
JavaScript의 Date 객체 자체는 내부적으로 UTC 기반으로 동작합니다. Intl.DateTimeFormat이나 toLocaleString()의 timeZone 옵션을 사용하면 특정 타임존으로 변환해서 표시할 수 있습니다. moment.js, day.js, date-fns 같은 라이브러리도 타임존 변환을 편리하게 지원합니다.

🛠 다른 도구도 사용해보세요