현재 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 같은 라이브러리도 타임존 변환을 편리하게 지원합니다.

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