Epoch 시간(Unix 시간)이란 무엇인가요?
Epoch 시간(에포크 시간)은 Unix 시간 또는 Unix 타임스탬프라고도 하며, Unix epoch라고 부르는 1970년 1월 1일 00:00:00 UTC부터 지난 초의 수입니다. 예를 들어 1700000000은 2023년 11월 14일 22:13:20 UTC입니다.
컴퓨터가 시간을 이렇게 저장하는 이유는 숫자 하나는 비교, 정렬, 시스템 간 전송이 쉽고 전 세계 어디서나 같은 순간을 뜻하기 때문입니다. 시간대는 사람이 읽을 날짜로 바꿀 때에만 적용됩니다. Unix 시간은 윤초를 무시하며, 하루를 정확히 86,400초로 계산합니다.

초, 밀리초, 마이크로초, 나노초 중 무엇일까요?
타임스탬프는 정밀도가 서로 다릅니다. 변환기는 자릿수로 단위를 감지하며, 단위 메뉴에서 직접 바꿀 수도 있습니다.
고전적인 Unix 타임스탬프로, Linux, PHP, Python의 time.time()(부동소수점), JWT exp 클레임, 대부분의 API에서 사용합니다. 예: 1700000000.
JavaScript(Date.now()), Java, 그리고 많은 데이터베이스와 로그에서 사용합니다. 예: 1700000000000.
Go의 UnixMicro()와 고해상도 로그 및 트레이스에서 많이 사용합니다. 예: 1700000000000000.
Go의 UnixNano(), InfluxDB, 모니터링 시스템에서 사용합니다. 예: 1700000000000000000.
Advertisement
Unix 타임스탬프를 날짜로 변환하는 방법
타임스탬프 → 날짜 탭에 입력하세요. 쉼표, 공백, 소수 부분(1700000000.5 등)도 입력할 수 있으며, 음수 값은 1970년 이전 날짜가 됩니다.
배지에 초, 밀리초, 마이크로초, 나노초 중 어느 단위로 읽었는지 표시됩니다. 추측이 틀렸다면 단위를 직접 고르세요.
UTC와 사용자 시간대의 날짜, ISO 8601, RFC 2822, 얼마나 지났는지, 그리고 네 가지 단위로 나타낸 같은 순간을 볼 수 있습니다.
목록에서 아무 시간대나 고르면 그곳의 같은 순간을 볼 수 있습니다. 예를 들어 해외 동료에게 로그 항목이 언제 기록되었는지 확인할 때 유용합니다.
날짜를 Unix 타임스탬프로 변환하는 방법
날짜 → 타임스탬프 탭을 열고 날짜와 시간을 고른 뒤 해당 시간대를 선택하세요. epoch 시간을 초와 밀리초로, 그리고 UTC 기준 ISO 8601 형식으로 보여 줍니다.
같은 패널에 선택한 시간대 기준으로 그 일, 월, 연도의 첫 초와 마지막 초도 표시됩니다. "뉴욕 시간 기준 10월에 들어온 모든 주문"처럼 기간의 시작과 끝 타임스탬프가 필요한 데이터베이스 쿼리에 편리합니다.
Advertisement
시간대와 서머타임
Unix 타임스탬프에는 시간대가 없습니다. 언제나 1970년 1월 1일 자정 UTC부터 셉니다. 같은 타임스탬프가 장소에 따라 다른 시각으로 보일 뿐이며, 예를 들어 1700000000은 런던에서는 22:13, 인도에서는 다음 날 아침 03:43입니다.
시간대가 중요해지는 것은 날짜를 타임스탬프로 바꿀 때입니다. 시계를 뒤로 돌릴 때는 어떤 시각이 두 번 생기고, 앞으로 당길 때는 어떤 시각이 아예 존재하지 않습니다. 미국에서 시계를 앞당기는 날 밤에는 뉴욕의 02:30이 존재하지 않습니다. 이 도구는 두 경우 모두 Python과 같은 방식으로 처리합니다. 존재하지 않는 시각은 그 차이만큼 앞으로 이동하고, 두 번 나오는 시각은 첫 번째 시각을 사용합니다.
2038년 문제
오래된 시스템은 Unix 시간을 부호 있는 32비트 정수에 저장하는데, 그 최댓값은 2147483647, 즉 2038년 1월 19일 03:14:07 UTC입니다. 1초 뒤 숫자가 음수로 오버플로되어 이런 시스템은 날짜를 1901년 12월 13일로 읽습니다.
대부분의 최신 운영체제와 언어는 64비트 시간을 사용해 영향을 받지 않지만, 임베디드 장치, 오래된 파일 형식, 일부 레거시 코드, 그리고 MySQL의 TIMESTAMP 열 타입(2038-01-19 03:14:07 UTC에서 끝남)은 여전히 영향을 받습니다. 변환기는 32비트 범위를 벗어난 타임스탬프에 경고를 표시하므로, 오래된 소프트웨어를 망가뜨릴 수 있는 값을 찾아낼 수 있습니다.
Advertisement
코드에서 현재 Epoch 시간 구하기
모든 언어와 셸에서 Unix 시간을 읽고 변환할 수 있습니다.
Math.floor(Date.now() / 1000) // 초
Date.now() // 밀리초
new Date(1700000000 * 1000).toISOString() // '2023-11-14T22:13:20.000Z'import time, datetime
int(time.time()) # 초
datetime.datetime.fromtimestamp(1700000000, datetime.timezone.utc)
# 2023-11-14 22:13:20+00:00date +%s # 현재 epoch 초
date -u -d @1700000000 # Linux (GNU date)
date -u -r 1700000000 # macOS (BSD date)-- PostgreSQL
SELECT extract(epoch FROM now());
SELECT to_timestamp(1700000000);
-- MySQL
SELECT UNIX_TIMESTAMP();
SELECT FROM_UNIXTIME(1700000000);time(); // PHP
date('c', 1700000000);
time.Now().Unix() // Go
Instant.now().getEpochSecond() // Java=(A1/86400)+DATE(1970,1,1) // A1의 epoch 초를 UTC 날짜로
=(B1-DATE(1970,1,1))*86400 // B1의 UTC 날짜를 epoch 초로주목할 만한 Unix 타임스탬프
0: 1970년 1월 1일 00:00:00 UTC, Unix epoch.1000000000: 2001년 9월 9일 01:46:40 UTC, 첫 10자리 타임스탬프.1234567890: 2009년 2월 13일 23:31:30 UTC.1700000000: 2023년 11월 14일 22:13:20 UTC.1800000000: 2027년 1월 15일 08:00:00 UTC.2000000000: 2033년 5월 18일 03:33:20 UTC.2147483647: 2038년 1월 19일 03:14:07 UTC, 32비트 한계.4294967295: 2106년 2월 7일 06:28:15 UTC, 부호 없는 32비트 한계.
Advertisement
더 많은 개발자 도구
개발자와 시스템 관리자를 위한 다른 무료 도구입니다. 모두 브라우저에서 실행됩니다.