본문으로 건너뛰기
AZ Tools

Unix 시간 정밀도 변환기

타임스탬프를 Unix epoch 기준 초·밀리초·마이크로초·나노초 간 변환. 정밀도 자동 감지, ISO·RFC 2822·상대 시간도 출력.

감지된 정밀도: 초 (s)· input n = 1792363586
모든 정밀도 및 형식
  • 초 (s)1792363586
  • 밀리초 (ms)1792363586000
  • 마이크로초 (µs)1792363586000000
  • 나노초 (ns)1792363586000000000
  • UTC2026-10-18 22:46:26.000 UTC
  • ISO 86012026-10-18T22:46:26.000Z
  • RFC 2822Sun, 18 Oct 2026 22:46:26 GMT
  • 로컬Sun Oct 18 2026 22:46:26 GMT+0000 (Coordinated Universal Time)
  • 상대 시간7s 전

자동 감지는 크기 사용(~10^9 = s, ~10^12 = ms 등). 미래·과거 시간이 멀면 강제 변경.

사용법

  1. 숫자를 붙여넣기 — 콤마·언더스코어·공백은 자동 제거됨.
  2. 자동 감지가 크기로 s/ms/us/ns 중 하나 선택. 틀렸으면 드롭다운으로 강제.
  3. 4개 정밀도와 4개 시각 형식이 나란히 표시. 대상이 기대하는 것을 복사.

자세한 설명

펼치기

시스템마다 유닉스 시간을 세는 해상도가 다른데, 정작 그 숫자는 어느 쪽인지 거의 말해 주지 않습니다. PostgreSQL의 now()는 마이크로초, 자바스크립트의 Date.now()는 밀리초, 고의 time.Unix()는 초, gRPC의 Timestamp는 초와 나노초를 함께, 프로메테우스는 실수 초, syslog는 나노초까지 갑니다. 숫자를 붙여 넣으면 이 도구가 자릿수로 단위를 추측하고, 네 가지 정밀도로 값을 보여 주며, ISO 8601과 UTC 기준 RFC 2822, 현지 시각, 그리고 "얼마 전" 형태의 상대 표현으로 렌더링합니다. 출처를 이미 알고 있다면 추측을 덮어쓸 수 있습니다.

추측이 통하는 이유는 현재 시각의 타임스탬프가 특유의 길이를 갖기 때문입니다. 지금 기준으로 초는 열 자리, 밀리초는 열세 자리, 마이크로초는 열여섯 자리, 나노초는 열아홉 자리입니다. 이것은 형식의 속성이 아니라 현재에 대한 어림짐작이고, 오래되었거나 인위적인 값에서는 실패합니다. 1000000000이라는 수는 초로 읽으면 2001년 9월의 목요일이고 밀리초로 읽으면 1970년 1월의 월요일입니다. 둘 다 정당하며, 어느 로그가 그것을 썼는지는 여러분만 압니다. 0에 가까운 타임스탬프가 가장 모호한데, 수상하게 1970년으로 나오는 날짜는 대개 무언가가 정말 그만큼 오래된 것이 아니라 단위를 잘못 읽은 것입니다.

알아 둘 천장이 셋 있습니다. 부호 있는 32비트 초 카운터는 2038년 1월 19일 03시 14분 07초 UTC에 바닥나는데, 수많은 임베디드 시스템과 오래된 데이터베이스 컬럼에서 여전히 쓰이는 저장 타입입니다. 부호 있는 64비트 나노초 카운터는 — 고의 UnixNano를 비롯해 — 2262년 4월에 바닥납니다. 먼 이야기처럼 들리지만, 아주 먼 미래의 만료일을 계산하다 오버플로를 만나면 그렇지 않습니다. 그리고 자바스크립트의 수는 2의 53승까지만 정수를 정확히 담습니다. 9,007,199,254,740,992나노초, 즉 기원으로부터 약 104일입니다. 나노초 타임스탬프는 자바스크립트 수로 표현할 수 없으며 문자열이나 BigInt로 다녀야 합니다.

어떤 정밀도로도 해결되지 않는 것이 하나 있습니다. 유닉스 시간은 설계상 윤초를 무시합니다. 윤초는 세어지는 대신 흡수되므로, 윤초가 삽입될 때 같은 유닉스 타임스탬프가 실제 두 초를 덮습니다. 그 순간을 가로질러 두 타임스탬프를 빼서 구한 기간은 1초만큼 어긋납니다.

자주 묻는 질문

자동 감지는 어떻게 동작하나요?

현대 타임스탬프는 예측 가능한 자릿수에 들어옵니다: 2026년 unix-seconds는 약 1.78×10^9, ms는 1.78×10^12, us는 1.78×10^15, ns는 1.78×10^18. 입력 숫자가 속하는 10의 거듭제곱 구간으로 정밀도를 선택합니다. 비정상적인 값(예: 100년 후)이면 강제 변경 가능.

마이크로초·나노초 출력이 왜 정밀도를 잃을 수 있나요?

JavaScript Number는 64비트 부동소수점으로 가수 53비트 — Date 전체 범위에서 ms 정밀도까지는 안전하지만, ns 값이 2^53을 넘으면 하위 자릿수에서 정밀도 손실. 큰 값에서 정확한 나노초 연산이 필요하면 BigInt를 사용하거나 관련 자릿수만 표시하세요.

상대 시간 기준은?

페이지 렌더링 시점의 브라우저 현재 시간. 새로고침으로 갱신. 로그 타임스탬프가 최근인지 오래된 건지 빠르게 확인할 때 유용.

타임스탬프가 엉뚱한 정밀도로 읽히는 것을 어떻게 막나?

받는 쪽이 추론하게 두지 말고, 필드 이름이나 스키마에 어느 단위인지 밝혀라. created_at은 추측이지만 created_at_ms는 모호하지 않다. 자동 감지는 값의 크기로 판단하므로 요즘 날짜에는 잘 맞고, 정작 중요한 지점에서 실패한다. 1970년대의 초 단위 타임스탬프와 지금의 밀리초 단위 값이 같은 범위에 놓일 수 있기 때문이다.

마이크로초와 나노초 값의 끝자리가 사라지는 이유는?

배정밀도 실수는 대략 9천조까지만 정수를 정확히 담는데, 현재 날짜의 나노초 타임스탬프는 그보다 크기 때문이다. 그래서 끝의 몇 자리가 보존되지 않는다. 나노초 시각은 문자열이나 큰 정수 타입으로 실어 나르고, JSON을 거쳐 들어온 나노초 값은 따옴표에 묶여 있지 않았다면 의심하라.

관련 도구