에포크 → 날짜: 타임스탬프 변환하기
- 타임스탬프 → 날짜 칸에 숫자를 붙여 넣습니다. 공백, 쉼표, 밑줄은 무시하므로
1,767,225,600도 되고, 음수나 소수도 받습니다. - 단위는 자동 감지로 두거나 초, 밀리초, 마이크로초, 나노초 중에서 직접 고릅니다. 감지된 단위는 입력 칸 아래에 표시됩니다.
- 결과를 내 시간대, UTC, ISO 8601, RFC 2822 형식, 그리고 ‘3일 전’ 같은 상대 시간으로 확인합니다. ISO와 RFC 줄에는 각각 복사 버튼이 있습니다.
지금을 누르면 현재 시각이 채워지고, 맨 위의 실시간 카운터는 현재 에포크 값을 초와 밀리초로 보여 줍니다.
날짜 → 에포크: 날짜에서 타임스탬프 구하기
- 날짜 → 타임스탬프 영역에서 날짜와 시간을 초 단위까지 고릅니다.
- 그 시각이 현지 시간(기기의 시간대)인지 UTC인지 정합니다. 이 선택에 따라 답이 UTC와의 시차만큼 달라집니다.
- 초나 밀리초 단위 타임스탬프, 또는 ISO 8601 형식을 복사합니다.
유닉스 시간이란
유닉스 시간(에포크 시간, POSIX 시간이라고도 함)은 1970년 1월 1일 00:00:00 UTC, 즉 ‘에포크’로부터 흐른 초를 셉니다. 하루는 언제나 정확히 86,400초로 취급하며 윤초는 무시합니다. 같은 순간이면 지구 어디에서나 같은 숫자이므로, 데이터베이스, 로그, API, 파일 시스템이 시간대를 따지지 않고 시각을 기록할 때 이 값을 씁니다. 타임스탬프에 시간대가 생기는 것은 달력 날짜로 바꿀 때뿐입니다.
초, 밀리초, 마이크로초, 나노초?
시스템마다 세는 단위가 다르고, 자릿수를 보면 알 수 있습니다. 요즘 날짜 기준으로는 다음과 같습니다.
| 단위 | 자릿수 | 2026년 1월 1일 00:00 UTC의 값 | 주로 쓰는 곳 |
|---|---|---|---|
| 초 | 10 | 1767225600 | 유닉스 셸, PHP, Python int(time.time()), JWT 클레임 |
| 밀리초 | 13 | 1767225600000 | JavaScript Date.now(), Java, 많은 JSON API |
| 마이크로초 | 16 | 1767225600000000 | 일부 데이터베이스와 추적(트레이싱) 도구 |
| 나노초 | 19 | 1767225600000000000 | Go UnixNano(), InfluxDB, 고해상도 로그 |
자동 감지는 10¹¹ 미만을 초, 10¹⁴ 미만을 밀리초, 10¹⁷ 미만을 마이크로초, 나머지를 나노초로 읽습니다. 1973년부터 5138년 사이의 날짜라면 모두 맞게 판별됩니다. 예외는 1966년 말부터 1973년 3월 초 사이 날짜의 밀리초 값입니다. 숫자가 작아서 초처럼 보이므로, 1970년에 그렇게 가까운 날짜는 단위를 직접 고르세요. 날짜는 밀리초까지 표시되며, 그보다 작은 자릿수는 입력은 되지만 표시되지 않습니다.
예시
| 타임스탬프 | UTC 날짜와 시간 | 비고 |
|---|---|---|
0 | 1970년 1월 1일 00:00:00 | 에포크 그 자체 |
1000000000 | 2001년 9월 9일 01:46:40 | 처음으로 10자리가 된 타임스탬프 |
1767225600 | 2026년 1월 1일 00:00:00 | 이 도구의 입력 예시 값 |
-86400 | 1969년 12월 31일 00:00:00 | 음수는 1970년 이전 |
2147483647 | 2038년 1월 19일 03:14:07 | 부호 있는 32비트 정수의 최댓값 |
반대 방향의 예: 2026년 7월 1일 12:00을 UTC로 입력하면 1782907200입니다. 서울(UTC+9)로 설정된 컴퓨터에서 같은 시각을 현지 시간으로 입력하면 1782874800으로, 정확히 32,400초(9시간) 이릅니다.
시간대와 서머타임
타임스탬프 하나는 한 순간이지만, 세계 곳곳에서 다르게 읽힙니다. 1767225600은 서울에서는 2026년 1월 1일 오전 9시, 뉴욕에서는 2025년 12월 31일 오후 7시입니다. 변환한 날짜가 몇 시간 어긋나 보인다면 타임스탬프는 대개 멀쩡하고, 표시하는 시간대가 다른 것입니다. 서머타임(일광 절약 시간)은 내 시간대에 맞게 자동으로 적용됩니다. 같은 순간을 여러 도시에서 나란히 보려면 시차 계산기를 쓰세요.
코드와 스프레드시트에서 변환하기
- JavaScript: 현재 값은
Math.floor(Date.now() / 1000), 변환은new Date(1767225600 * 1000).toISOString(). - Python:
int(time.time()),datetime.fromtimestamp(1767225600, tz=timezone.utc). - PHP:
time(),date('c', 1767225600). - 셸:
date +%s. 변환은 Linux에서date -d @1767225600, macOS에서date -r 1767225600. - SQL: PostgreSQL은
to_timestamp(1767225600), MySQL은FROM_UNIXTIME(1767225600). - Excel이나 Google 스프레드시트:
=A1/86400+DATE(1970,1,1)을 입력하고 셀 서식을 날짜와 시간으로 바꿉니다. 결과는 UTC 기준이므로 한국 시간으로 보려면+9/24를 더합니다.
자주 묻는 질문
2038년 문제란 무엇인가요?
유닉스 시간을 부호 있는 32비트 정수에 저장하는 소프트웨어는 2,147,483,647까지만 셀 수 있고, 이 값은 2038년 1월 19일 03:14:07 UTC에 도달합니다. 1초 뒤에는 값이 −2,147,483,648로 넘어가 1901년 12월 13일로 읽힙니다. 요즘 운영 체제와 언어는 64비트 시간을 쓰지만, 오래된 임베디드 기기, 파일 형식, 32비트 정수로 선언한 데이터베이스 열은 여전히 영향을 받을 수 있습니다.
타임스탬프가 왜 13자리인가요?
밀리초 단위이기 때문입니다. 1,000으로 나누면 초가 되고, 그냥 여기에 붙여 넣어도 자동 감지가 알아서 처리합니다.
유닉스 타임스탬프에 윤초가 포함되나요?
아니요. 유닉스 시간은 모든 날이 86,400초라고 가정하므로 윤초는 세지 않습니다. 운영 체제는 그 대신 1초를 반복하거나 조금씩 나눠 흡수합니다. 일상적인 변환에서는 눈에 띄는 차이가 없습니다.
어느 범위의 날짜까지 변환할 수 있나요?
브라우저의 날짜 시스템이 지원하는 범위, 대략 기원전 271,821년부터 서기 275,760년까지입니다. 그 범위를 벗어나면 범위를 벗어났다는 메시지가 나옵니다.