Unix 타임스탬프 이해하기: 개발자를 위한 완전 가이드
2026-05-20 · Development
Unix 타임스탬프란?
Unix 타임스탬프는 초의 누적 합계로 시간을 추적하는 방식입니다. 1970년 1월 1일 00:00:00 UTC — "Unix 에포크"라고 알려진 기준점으로부터 경과한 초의 수를 셉니다.
예를 들어, Unix 타임스탬프 1719000000은 특정 시점을 나타냅니다: 2024년 6월 22일 약 00:00 UTC. 매초 이 숫자가 1씩 증가합니다.
왜 Unix 타임스탬프를 사용할까?
Unix 타임스탬프는 소프트웨어 개발에서 여러 이유로 널리 사용됩니다:
- 시간대 독립성: 타임스탬프는 전 세계 어디에서나 동일한 순간을 나타냅니다. EST, PST, JST인지에 대한 모호함이 없습니다 — 항상 UTC 기준입니다.
- 쉬운 비교: 두 타임스탬프 비교는 단순한 숫자 비교입니다. 타임스탬프 A가 타임스탬프 B보다 크면 사건 A가 사건 B 이후에 발생했습니다.
- 효율적인 저장: 10자리 정수를 저장하는 것은 "2024-06-22T00:00:00Z" 같은 형식화된 날짜 문자열을 저장하는 것보다 훨씬 공간 효율적입니다.
- 수학 연산: 타임스탬프에 86,400초를 더하면 정확히 24시간 후가 됩니다. 월 경계나 윤년을 고려할 필요가 없습니다.
초 vs 밀리초
Unix 타임스탬프에는 두 가지 일반적인 형식이 있습니다:
- 초 (10자리): 원래 Unix 타임스탬프 형식. 예:
1719000000 - 밀리초 (13자리): JavaScript와 많은 최신 API에서 더 높은 정밀도를 위해 사용됩니다. 예:
1719000000000
이 두 형식을 혼동하는 것은 흔한 버그 원인입니다. 초를 기대하는 함수에 밀리초 타임스탬프를 전달하면 날짜가 완전히 잘못됩니다 (약 50,000년 후).
다른 언어에서 타임스탬프 다루기
JavaScript
const now = Date.now(); // 밀리초 const seconds = Math.floor(Date.now() / 1000); const date = new Date(seconds * 1000);
Python
import time seconds = int(time.time()) from datetime import datetime dt = datetime.fromtimestamp(seconds)
PHP
$timestamp = time(); // 초
$date = date('Y-m-d H:i:s', $timestamp);
MySQL
SELECT UNIX_TIMESTAMP(); -- 현재 타임스탬프 SELECT FROM_UNIXTIME(1719000000); -- 날짜로 변환
흔한 함정
- 2038년 문제: 32비트 부호 있는 정수는 2038년 1월 19일에 오버플로됩니다. 32비트 타임스탬프를 사용하는 시스템은 64비트 정수로 마이그레이션해야 합니다.
- 윤초: Unix 타임스탬프는 윤초를 고려하지 않습니다. 대부분의 시스템은 이를 무시하므로 원자 시간과 약간의 차이가 발생할 수 있습니다.
- 시간대 표시: Unix 타임스탬프는 UTC라는 것을 항상 기억하세요. 사용자에게 표시하려면 현지 시간대로 변환해야 합니다.
TryQuickToolBox 타임스탬프 변환기
무료 도구는 Unix 타임스탬프(초 및 밀리초), ISO 8601 날짜, UTC 시간, 현지 시간 간에 변환합니다. 자동 감지로 어떤 형식이든 붙여넣고 즉시 결과를 얻을 수 있습니다. 결과를 클릭하면 클립보드에 복사됩니다.