에포크 변환기: 유닉스 타임스탬프 ↔ 날짜
타임스탬프나 날짜를 붙여넣으면 내 시간대와 UTC 날짜는 물론, 그 숫자의 다른 해석도 모두 보여 줍니다.
숫자 하나 · 모든 에포크
실제 날짜가 되는 방식 7개길이(9자리)를 보고 Unix 초 기준으로 읽었습니다. GPS 초 기준으로 읽으면 2005년 12월 6일입니다. 이 역시 실제 날짜이므로 클릭 한 번으로 바꿀 수 있게 둡니다.
- 밀리초
- 마이크로초
- 나노초
- ISO 8601
브라우저 시계는 밀리초 단위로만 셉니다. 그 뒤의 0은 자릿수를 채운 것이지 정밀도가 아닙니다.
UTC · 이 날짜 기준 UTC+00:00
1793813880- 밀리초
1793813880000- ISO 8601
2026-11-04T17:38:00Z
시작과 끝(UTC)
| 시작 | 끝 | |
|---|---|---|
| 일 | 1793750400 | 1793836799 |
| 월 | 1793491200 | 1796083199 |
| 연 | 1767225600 | 1798761599 |
모든 처리는 이 탭 안에서 이루어지며, 붙여넣은 내용은 어디에도 전송되지 않습니다.
타임스탬프 변환기 사용법
가진 타임스탬프를 단위와 상관없이 입력란에 붙여넣으면 내 시간대와 UTC 날짜가 나타납니다. 날짜, 이메일 Date 헤더, 지금(now)이라는 단어를 입력해 에포크 시간을 얻을 수도 있습니다.
이 페이지는 숫자를 초, 밀리초, 마이크로초, 나노초로 한꺼번에 읽어 실제 날짜가 되는 방식을 고르고, 그 이유를 말하며, 다른 방식도 클릭 한 번 거리에 둡니다. 답 아래에서는 같은 숫자를 Windows, .NET, Mac, Excel, NTP, GPS 타임스탬프로도 읽고, 모든 형식을 복사할 수 있습니다.

무엇이든 붙여넣기어떤 단위의 숫자든, ISO 날짜, 이메일 Date 헤더, SQL 날짜 시간, ‘지금’(now)이라는 단어까지. 방향 표시가 어떻게 읽었는지 알려 줍니다.자릿수 세기숫자 아래의 눈금이 자릿수를 세 개씩 묶어 주므로 18자리는 여섯 묶음으로 읽힙니다. 무엇인지 알아내는 첫 단서입니다.답부터 먼저요일과 날짜, 이어서 UTC와 내 시간대의 시각, 그리고 복사할 수 있는 모든 형식을 보여 줍니다.어떤 방식으로, 왜어떤 방식으로 읽었고 왜 그렇게 골랐는지 말로 설명하고, 실제 날짜가 되는 다른 방식도 알려 줍니다.다른 모든 에포크같은 숫자를 모든 단위와 에포크로 읽어 각각의 시작점에서 뻗은 막대로 보여 줍니다. 행을 고르면 그 방식으로 읽습니다.에포크 시간이란 무엇이며, 왜 1970년부터 시작하나요?
에포크 시간, 또는 유닉스 시간은 POSIX가 ‘에포크(the Epoch)’라고 부르는 순간인 1970-01-01 00:00:00 UTC부터 지난 초의 수입니다. 타임스탬프 0이 바로 그 순간이고, 817876800은 1995-12-02 04:00 UTC입니다.
1970년을 고른 이유를 기록한 1차 자료는 없습니다. 1971년 11월의 첫 Unix 매뉴얼은 1971년 1월 1일부터 60분의 1초를 셌고, 그 시계가 약 2년 반이면 다 찬다고 적었습니다. 1979년 7판에 이르러서는 1970년 1월 1일부터의 초를 세게 되었는데, Unix가 만들어지던 무렵에 가까운 딱 떨어지는 날짜입니다. UTC 자체는 1972년에야 시작되었으므로, 그 이전의 타임스탬프는 관례상 UTC입니다.
1973년 4월 8일에 가득 참 · 2.27년
1901-12-13 → 2038-01-19양쪽으로 각각 68년
음수 값: 1970년 이전
UNIX Programmer's Manual 1판, time (II), 1971년 11월 3일
연대--지향적인 사용자라면 2**32개의 60분의 1초가 약 2.5년에 불과하다는 것을 알아챌 것이다.
이 페이지가 읽는 모든 에포크를 한 줄에
- 1
.NET
0001-01-01· 100ns 틱 - 2
Windows FILETIME
1601-01-01· 100ns 틱 - 3
Excel
1899-12-30· 일 - 4NTP
1900-01-01· 초 - 5
Mac HFS+
1904-01-01· 초 - 6
Excel 1904
1904-01-01· 일 - 7Unix
1970-01-01· 초 - 8GPS
1980-01-06· 초
내 타임스탬프는 초, 밀리초, 마이크로초, 나노초 중 무엇인가요?
자릿수를 세어 보세요. 현재 타임스탬프는 초 단위면 10자리, 밀리초면 13자리, 마이크로초면 16자리, 나노초면 19자리입니다. JavaScript와 Java는 밀리초를, Unix 도구와 대부분의 API는 초를 씁니다.
자릿수는 강력한 단서이지만 증거는 아닙니다. NTP, GPS, Mac 타임스탬프도 현재 10자리이고, Windows FILETIME과 .NET 틱 수는 둘 다 18자리입니다. 그래서 이 페이지는 모든 척도를 한꺼번에 읽고, 고른 방식을 다른 방식들 옆에 보여 줍니다. 또 FILETIME은 JavaScript가 정확히 담을 수 있는 크기를 넘으므로, 이 페이지는 붙여넣은 숫자를 그대로 유지합니다.
10자리 · 척도 4개 · 숫자만으로는 어느 것인지 알 수 없습니다
18자리 · 척도 2개 · 첫 자리만으로 구별됩니다
10자리 초 값은 2001-09-09T01:46:40Z부터 2286-11-20T17:46:39Z까지입니다. 이는 285년에 걸친 범위이지 단위가 아닙니다.
유닉스 타임스탬프를 내 시간대의 날짜로 변환하려면?
유닉스 타임스탬프에는 시간대가 없으며, 어디서나 같은 한 순간을 가리킵니다. 날짜는 어디서 읽느냐에 따라 달라지므로, 이 페이지는 내 시간대와 UTC를 나란히 보여 주고, 고른 다른 시간대로도 보여 줍니다.
시간대 선택기는 운영체제가 쓰는 것과 같은 IANA 시간대 데이터베이스를 사용하므로, 일광 절약 시간(서머타임) 변경은 오늘이 아니라 그 날짜 기준으로 적용됩니다. 반대 방향에서는 오프셋 없이 입력한 날짜를 UTC로 읽고, 내 시간대로 다시 읽도록 제안합니다.
한 순간1793057400= 2026-10-26T23:30:00Z
- 로스앤젤레스16:3010월 26일 (월)UTC−07:00
- 뉴욕19:3010월 26일 (월)UTC−04:00
- UTC23:3010월 26일 (월)UTC+00:00
- 베를린00:3010월 27일 (화)UTC+01:00
- 콜카타05:0010월 27일 (화)UTC+05:30
- 도쿄08:3010월 27일 (화)UTC+09:00
- 로드하우섬10:3010월 27일 (화)UTC+11:00
베를린, 2026년 3월 29일23시간 · 시계가 02:00에서 03:00 시각으로 건너뜀
베를린, 2026년 10월 25일25시간 · 시계가 03:00에서 02:00 시각으로 되돌아감
중부유럽 표준시 · UTC+01:00중부유럽 하계 표준시 · UTC+02:00두 번 있었던 1시간없었던 1시간
2038년에 유닉스 시간은 어떻게 되나요?
부호 있는 32비트 정수로 저장한 유닉스 시간은 2147483647에서 끝나며, 이는 2038-01-19 03:14:07 UTC입니다. 1초 뒤에는 1901년 12월의 날짜로 되돌아갑니다. POSIX가 이제 요구하는 대로 64비트로 세는 시스템은 영향을 받지 않습니다.
2026년의 위험은 시계가 아니라 저장소에 있습니다. MySQL의 TIMESTAMP 열은 여전히 2038-01-19 03:14:07 UTC에 끝나며, 32비트 필드를 유지한 파일 형식이나 임베디드 기기도 마찬가지입니다. NTP에는 그보다 이른 자체 롤오버가 있어, 32비트 초가 2036년에 한 바퀴 돕니다. 이 페이지는 2038년 경계에 가깝거나 넘은 타임스탬프를 표시해 줍니다.
2,147,483,647부호 있는 32비트의 가장 큰 수
01111111 11111111 11111111 111111112038년 1월 19일 (화)03:14:07 UTC
+ 1초
-2,147,483,648같은 32비트를 부호 있는 수로 읽은 값
10000000 00000000 00000000 000000001901년 12월 13일 (금)20:45:52 UTC
마지막 1초(UTC)
time_t2038-01-19 03:14:07TIMESTAMP 열2038-01-19 03:14:07오늘2038-01-19
time_t는 1970년 앞뒤로 약 2923억년까지 닿습니다. 출처: POSIX.1-2024 A.4.19, MySQL 8.4, RFC 5905 §6, TN1150유닉스 타임스탬프가 음수일 수 있나요?
네. 음수 타임스탬프는 1970년 이전의 날짜입니다. -1은 1969-12-31 23:59:59 UTC이고, -86400은 1969-12-31 00:00:00 UTC입니다.
POSIX 자체는 음수 값을 정의하지 않지만, GNU와 대부분의 시스템은 문서화된 확장으로 이를 1970년 이전 날짜로 다루며, JavaScript, Python, PostgreSQL도 마찬가지입니다. 예외는 MySQL로, TIMESTAMP 열은 1970년에 시작하고 FROM_UNIXTIME(-1)은 NULL을 반환합니다. 생년월일과 역사 기록은 평범한 음수 타임스탬프이므로, 이 페이지는 이를 오류로 보지 않고 날짜로 읽습니다.
초거슬러 간 거리(로그 척도)날짜(UTC)
01970년 1월 1일 (목)00:00:00 UTC-11969년 12월 31일 (수)23:59:59 UTC-86,4001969년 12월 31일 (수)00:00:00 UTC-31,536,0001969년 1월 1일 (수)00:00:00 UTC-1,000,000,0001938년 4월 24일 (일)22:13:20 UTC-2,147,483,6481901년 12월 13일 (금)20:45:52 UTC- POSIX
연도가 <1970이거나 값이 음수이면, 그 관계는 정의되지 않는다.
GNU date
@-1은 1969-12-31 23:59:59 UTC: POSIX에 대한 확장으로서의 음수 값JavaScript1970년 앞뒤로 약 273,790년 이내의 모든 날짜
MySQL TIMESTAMP1970-01-01 00:00:01 UTC에 시작: 음수 값을 담을 수 없음
Windows, .NET, Mac, Excel, NTP, GPS: 다른 에포크들
많은 시스템이 저마다의 0부터 셉니다. Windows는 1601년, .NET은 서기 1년, Mac과 HFS+는 1904년, Excel은 1900년, NTP는 1900년, GPS는 1980년 1월 6일부터입니다. 유닉스 타임스탬프로는 말이 안 되는 숫자는 대개 이 중 하나입니다.
예를 들어 FILETIME 133756272000000000은 1601년부터의 100나노초 간격을 센 값으로, 2024-11-09 12:00:00 UTC입니다. Excel은 일수를 세며 1900년을 일부러 윤년으로 취급하므로, 61 미만의 일련 번호는 하루가 어긋나고 이 페이지는 이를 표시합니다. GPS 시간은 윤초를 건너뛰며 2017년부터 UTC보다 18초 앞서 있습니다.
| 에포크 | 단위 | 시작 | 2026년 10월 26일 기준 | 자릿수 | 시간대 | 쓰이는 곳 |
|---|---|---|---|---|---|---|
| Unix 초 | 초 | 1970-01-01 | 1792972800 | 10 | UTC(POSIX) | date +%s, Python의 time.time() |
| 밀리초 | 1970-01-01 | 1792972800000 | 13 | UTC | JavaScript의 Date.now(), Java | |
| 나노초 | 1970-01-01 | 1792972800000000000 | 19 | UTC | Go의 UnixNano() | |
| 100ns 틱 | 1601-01-01 | 134374464000000000 | 18 | UTC(FAT에서는 현지 시각) | NTFS, Active Directory의 lastLogon, Win32 | |
| 100ns 틱 | 0001-01-01 | 639285696000000000 | 18 | Kind에 따라 UTC 또는 현지 시각 | .NET의 DateTime.Ticks | |
| 일 | 1899-12-30 | 46321 | 5 | 없음: 시계 시각 | Excel, Google Sheets, LibreOffice | |
| 일 | 1904-01-01 | 44859 | 5 | 없음: 시계 시각 | 구형 Mac용 Excel | |
| 초 | 1904-01-01 | 3875817600 | 10 | GMT(기존 HFS: 현지 시각) | HFS+ 파일 날짜 | |
| NTP 초 | 초 | 1900-01-01 | 4001961600 | 10 | UTC | NTP 패킷 |
| GPS 초 | 초 | 1980-01-06 | 1477008018 | 10 | 윤초 없음: UTC + 18초 | GPS 수신기, RINEX 파일 |
유닉스 시간은 윤초를 세나요?
아니요. 유닉스 시간은 하루를 언제나 정확히 86,400초로 두므로 윤초에는 고유한 숫자가 없으며, POSIX도 그렇게 밝힙니다. 분해된 POSIX 시간은 겉보기와 달리 반드시 UTC인 것은 아닙니다.
1972년 이후 UTC에는 윤초가 27번 추가되었습니다. 유닉스 시간에는 그 추가된 1초에 해당하는 숫자가 없어서 타임스탬프 하나가 2초를 나타냅니다. 마지막 윤초는 2016-12-31에 있었고, 2022년 국제도량형총회는 윤초가 필요해지는 한계를 2035년까지 늘리기로 결정했으며, 이는 사실상 윤초를 끝내는 것입니다. 윤초가 처음부터 없었던 GPS 시간이 그 차이를 보여 줍니다. GPS 시간은 18초 앞서 있습니다.
1998년 12월 31일의 마지막 몇 초
Unix 시간은 915148800 값을 두 번 씁니다. 윤초가 없는 GPS 시간은 계속 셉니다.
윤초 27회2016년 12월 31일 뒤로는 없음 · 2027년 6월 28일 이전 예정 없음
GPS 시간 시작 전GPS 시간 시작 후: 하나가 추가될 때마다 GPS 시간이 1초씩 더 앞섬
POSIX.1-2024, Rationale A.4.19
협정 세계시(UTC)에는 윤초가 포함된다. 그러나 POSIX 시간(에포크 이후의 초)에서는 시간 차이를 쉽고 호환성 있게 계산하는 방법을 제공하기 위해 윤초를 무시한다(적용하지 않는다). 따라서 분해된 POSIX 시간은 겉보기와 달리 반드시 UTC인 것은 아니다.
Python, JavaScript, Java, C#, Go, SQL, 셸에서 유닉스 타임스탬프 변환
어느 언어든 한두 줄이면 양방향으로 변환합니다. 함정은 단위(JavaScript와 Java는 밀리초로 셈)와 시간대(데이터베이스는 세션 시간대로 값을 읽을 수 있음)입니다.
아래 예제는 모두 817876800을 날짜로, 날짜를 다시 초로 바꾸며, 각각 실행해 출력을 확인했습니다. 셸에서 macOS와 BSD 계열은 date -r 817876800을, GNU/Linux는 date -d @817876800을 씁니다. 둘은 서로 바꿔 쓸 수 없습니다.
from datetime import datetime, timezone t = datetime.fromtimestamp(817876800, tz=timezone.utc) print(t.isoformat()) # 1995-12-02T04:00:00+00:00 back = datetime(1995, 12, 2, 4, 0, tzinfo=timezone.utc) print(int(back.timestamp())) # 817876800
2026년 10월 26일에 Python 3.14.4 환경에서 실행: 주석에 적힌 그대로 출력합니다.
const t = new Date(817876800 * 1000); // Date counts milliseconds console.log(t.toISOString()); // 1995-12-02T04:00:00.000Z const back = Date.UTC(1995, 11, 2, 4, 0, 0) / 1000; // months count from 0 console.log(back); // 817876800
2026년 10월 26일에 Node.js 22.23.2 환경에서 실행: 주석에 적힌 그대로 출력합니다.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(817876800L);
System.out.println(t); // 1995-12-02T04:00:00Z
long back = Instant.parse("1995-12-02T04:00:00Z").getEpochSecond();
System.out.println(back); // 817876800
}
}2026년 10월 26일에 OpenJDK 25.0.2 환경에서 실행: 주석에 적힌 그대로 출력합니다.
var t = DateTimeOffset.FromUnixTimeSeconds(817876800); Console.WriteLine(t.ToString("o")); // 1995-12-02T04:00:00.0000000+00:00 var back = new DateTimeOffset(1995, 12, 2, 4, 0, 0, TimeSpan.Zero).ToUnixTimeSeconds(); Console.WriteLine(back); // 817876800
2026년 10월 26일에 .NET 10.0.103 환경에서 실행: 주석에 적힌 그대로 출력합니다.
package main import ( "fmt" "time" ) func main() { t := time.Unix(817876800, 0).UTC() fmt.Println(t.Format(time.RFC3339)) // 1995-12-02T04:00:00Z back := time.Date(1995, 12, 2, 4, 0, 0, 0, time.UTC).Unix() fmt.Println(back) // 817876800 }
2026년 10월 26일에 Go 1.25.5 환경에서 실행: 주석에 적힌 그대로 출력합니다.
SET TIME ZONE 'UTC'; SELECT to_timestamp(817876800); -- 1995-12-02 04:00:00+00 SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1995-12-02 04:00:00+00')::bigint; -- 817876800
2026년 10월 26일에 PostgreSQL 16.10 환경에서 실행: 주석에 적힌 그대로 출력합니다.
SET time_zone = '+00:00'; SELECT FROM_UNIXTIME(817876800); -- 1995-12-02 04:00:00 SELECT UNIX_TIMESTAMP('1995-12-02 04:00:00'); -- 817876800
2026년 10월 26일에 MySQL 9.5.0 환경에서 실행: 주석에 적힌 그대로 출력합니다.
# macOS and the BSDs: -r takes seconds date -u -r 817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -j -f '%F %T' '1995-12-02 04:00:00' +%s # 817876800 # Linux (GNU coreutils): -d @seconds; GNU's -r reads a file's date date -u -d @817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -d '1995-12-02 04:00:00' +%s # 817876800
2026년 10월 26일에 macOS 26.6의 date 명령과 GNU coreutils 9.12의 date 명령 환경에서 실행: 주석에 적힌 그대로 출력합니다.
에포크 시간: 자주 묻는 질문
에포크 시간이란 무엇인가요?
에포크 시간을 날짜로 변환하는 방법은?
new Date(817876800 * 1000)입니다.현재 에포크 시간은 어떻게 확인하나요?
date +%s가 초 단위로 출력합니다.유닉스 타임스탬프는 초인가요, 밀리초인가요?
유닉스 시간은 왜 1970년부터 시작하나요?
유닉스 시간은 UTC와 같나요?
2038년 문제란 무엇인가요?
TIMESTAMP 열은 여전히 그 초에 끝납니다.1970년 이전 날짜도 변환할 수 있나요?
TIMESTAMP는 이를 담지 못하지만, 대부분의 언어와 데이터베이스는 1970년 이전 날짜로 읽습니다.Windows FILETIME을 날짜로 변환하려면?
Excel 날짜 일련 번호를 타임스탬프로 변환하려면?
변환기가 시간대와 일광 절약 시간을 처리하나요?
내 타임스탬프가 어딘가로 전송되나요?
부족한 점이 있습니까?기능 또는 새 도구 제안하기
관련 도구
UUID 생성기
UUID v4, v7, v1, v5, v3 또는 GUID를 원하는 형식으로 대량 생성하고, UUID의 버전과 타임스탬프를 디코딩
Base64 디코딩 & 인코딩
Base64 디코딩·인코딩: 텍스트(UTF-8, URL-safe), 이미지, PDF 및 모든 파일을 Base64나 data URI로 변환
바이너리 번역기 (바이너리 변환)
텍스트를 바이너리로, 바이너리를 텍스트로 번역: 자동 감지, 16진수·10진수·8진수 지원
서브넷 계산기
IPv4·IPv6 블록의 네트워크, 브로드캐스트, 사용 가능한 호스트, 마스크 계산과 VLSM, 분할, 클라우드 서브넷