PC·모바일 문제 해결

Unix 타임스탬프 날짜 변환: 초·밀리초와 UTC 이해하기

Unix 타임스탬프를 날짜로 바꿉니다. 초와 밀리초, UTC와 로컬 시간, ISO 8601, 날짜를 다시 epoch 시간으로 바꾸는 방법을 봅니다.

빠른 답

Unix 타임스탬프는 Unix epoch인 1970-01-01 00:00:00 UTC부터의 시간을 나타냅니다. 보통 epoch 이후 초, 또는 밀리초로 저장됩니다.

올바르게 변환하려면 먼저 단위를 알아야 합니다. 1720000000초는 2024-07-03 09:46:40 UTC입니다. 1720000000000밀리초는 같은 순간입니다.

타임스탬프는 instant를 가리킵니다. UTC, 로컬 시간, IANA 존은 그 순간을 어떻게 보여 줄지만 바꿉니다.

이 글은 변환 안내입니다. 타임스탬프→날짜, 날짜→타임스탬프, UTC와 로컬, ISO 8601. 값이 갑자기 1970이 되면 보통 초/밀리초 불일치입니다. Unix Timestamp가 1970년으로 나오는 이유: 초와 밀리초 차이를 보세요.

Unix 타임스탬프란?

Unix timestamp, Unix time, epoch time은 보통 1970-01-01 00:00:00 UTC부터 경과한 시간을 뜻합니다. 숫자 자체는 시간대 라벨이 붙은 날짜 문자열이 아닙니다. 같은 instant를 UTC, 뉴욕, 도쿄, 서울에서 보여 주면 시계가 달라질 수 있습니다. Unix 타임스탬프가 항상 초인 것은 아닙니다. 실무에서는 밀리초도 흔합니다.

Unix epoch란?

Unix epoch는 1970-01-01 00:00:00 UTC입니다. 타임스탬프 0이 그 순간입니다. 양수는 epoch 이후입니다. 일부 시스템은 epoch 이전을 음수로 나타낼 수 있지만, 언어와 날짜 범위 지원은 다를 수 있습니다.

내 타임스탬프는 초일까, 밀리초일까?

1720000000은 초, 1720000000000은 밀리초이며 같은 순간입니다. 실용적인 단서: 약 10자리는 종종 초, 약 13자리는 종종 밀리초입니다. 자릿수는 heuristic일 뿐입니다. 과거·미래, 다른 단위, 다른 epoch에서는 달라 보일 수 있습니다. 날짜·시간·Unix Timestamp 변환은 초, 밀리초, 자동(10자리 이하 초, 13자리 이상 밀리초)으로 변환할 수 있습니다. 단위를 알면 직접 고르세요.

잘못된 단위는 왜 잘못된 날짜가 되나?

JavaScript Date는 밀리초를 기대합니다. 1720000000을 밀리초처럼 넣으면 1970-01-20 21:46:40 UTC가 됩니다. 밀리초를 초로 읽거나 그 반대면 날짜가 크게 달라집니다. 1970 문제 해결은 Unix Timestamp가 1970년으로 나오는 이유: 초와 밀리초 차이를 보세요.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

초 단위 Unix 타임스탬프를 날짜로 바꾸는 방법

초에 1000을 곱하면 밀리초입니다. JavaScript Date는 밀리초 기반이므로 new Date(timestamp * 1000)을 씁니다.

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

밀리초 타임스탬프를 날짜로 바꾸는 방법

밀리초는 Date에 그대로 넣습니다. 밀리초 값에 다시 ×1000 하지 마세요.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

같은 타임스탬프가 다른 시각으로 보이는 이유

Unix 타임스탬프는 하나의 instant입니다. UTC, 로컬, 선택한 IANA 존으로 보여 주면 시계가 달라질 수 있습니다. 1720000000000의 UTC는 2024-07-03 09:46:40입니다. 그날 America/New_York는 2024-07-03 05:46:40 (EDT)입니다. Asia/Seoul은 2024-07-03 18:46:40 (UTC+9)입니다. 뉴욕·서울 값은 Intl로 구한 것이며 고정 오프셋 문구가 아닙니다.

Unix 타임스탬프에 시간대가 들어 있나?

없습니다. America/New_York나 Asia/Seoul을 저장하지 않습니다. 타임스탬프는 instant입니다. 시간대는 그 instant를 사람이 읽는 날짜·시간으로 표시할 때 적용합니다. epoch는 UTC를 기준으로 정의되지만, 숫자 자체가 “UTC 시간대 필드”는 아닙니다.

Unix 타임스탬프와 ISO 8601

1720000000과 2024-07-03T09:46:40Z는 같은 instant를 나타낼 수 있습니다. Unix는 숫자 elapsed-time입니다. ISO 8601은 읽기 쉬운 날짜·시간 문자열이며 끝에 Z(UTC) 또는 오프셋이 붙을 수 있습니다. Z는 UTC이며 짧게 Zulu라고도 합니다. 같은 형식이 아닙니다.

현재 Unix 타임스탬프는 어떻게 구하나?

JavaScript에서 Date.now()는 밀리초입니다. Math.floor(Date.now() / 1000)은 초입니다. 글에 “지금”을 hardcode하지 마세요. 계속 바뀝니다.

Date.now();
Math.floor(Date.now() / 1000);

날짜를 다시 Unix 타임스탬프로 바꿀 수 있나?

있습니다. 명시적인 UTC ISO 문자열에서 getTime()은 밀리초, 1000으로 나누고 내리면 초입니다.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

모호한 날짜 형식에 주의하세요

03/07/2024는 지역에 따라 3월 7일 또는 7월 3일로 읽힐 수 있습니다. 시간대나 오프셋이 있는 ISO 스타일을 쓰세요. 날짜·시간·Unix Timestamp 변환은 01/02/2026 같은 모호한 숫자 날짜를 거절하고 날짜 선택기나 ISO 스타일을 요청합니다.

서머타임(DST)은?

Unix 타임스탬프는 DST 여부를 따로 저장하지 않습니다. 로컬 표시 때 존 규칙이 적용됩니다. America/New_York는 겨울과 여름 오프셋이 다르므로 “뉴욕은 항상 UTC-5”가 아닙니다.

Unix 타임스탬프에 leap second가 들어가나?

일반적인 POSIX/Unix time은 leap second를 연속 SI초처럼 따로 세지 않는 모델을 씁니다. 플랫폼마다 다를 수 있습니다. 일상 변환에서는 이 세부까지 신경 쓰지 않아도 됩니다.

Unix 타임스탬프 변환에서 흔한 실수

이런 혼동이 잘못된 날짜나 잘못된 시계를 만듭니다:

초를 밀리초로 취급
현대의 초 값이 JavaScript Date에서 1970 근처로 갑니다.

밀리초를 초로 취급
날짜가 먼 미래로 뜁니다.

10자리·13자리를 법칙으로 믿음
자릿수는 단서이지 보장이 아닙니다.

UTC와 로컬 시간을 혼동
instant는 같고 보이는 시계만 다를 수 있습니다.

숫자 안에 시간대가 있다고 가정
IANA 이름은 표시할 때 적용되며 타임스탬프에 저장되지 않습니다.

모호한 날짜, DST 구호, 추가 ×1000
ISO 스타일 입력을 쓰세요. 밀리초 값에 다시 곱하지 마세요.

검증된 UTC 예

아래 UTC 시각은 계산한 값이지 추측이 아닙니다:

입력 단위 UTC
0 초 1970-01-01 00:00:00
1720000000 초 2024-07-03 09:46:40
1720000000000 밀리초 2024-07-03 09:46:40
1720000000 밀리초 1970-01-20 21:46:40

간단한 변환 결정 안내

출처가 단위를 밝히면 그것을 쓰세요. 아니면 자릿수는 단서이고, 날짜가 그럴듯한지 확인하세요. API가 ms를 원하면 초를 밀리초로 바꾸세요. 표시는 UTC, 로컬, IANA 존 중 고르세요. 저장·교환에는 ISO 8601이 유용할 수 있습니다.

  • Unix 타임스탬프가 있음
  • 단위가 명시됐나? 쓰면 됨. 아니면 크기 확인
  • 초? API가 밀리초면 ×1000
  • 밀리초? ms 기반 API에 그대로
  • UTC, 로컬, IANA 존으로 표시
  • 문자열이 필요하면 ISO 8601
숫자는 instant입니다. 포맷이 시계를 고릅니다.
타임스탬프는 instant이지 표시 형식이 아닙니다

타임스탬프는 한 시점을 가리킵니다. UTC, 로컬 시간, 시간대는 그 순간을 사람에게 어떻게 보여 줄지만 정합니다.

브라우저에서 Unix 타임스탬프 변환

NEXNARA 날짜·시간·Unix Timestamp 변환는 Unix 초와 밀리초를 변환하고 UTC, 로컬 시간, ISO 8601을 보여 주며 IANA 시간대 사이를 변환합니다.

Unix 모드는 초, 밀리초, 자동 단위, 현재 시각, 날짜→타임스탬프를 지원합니다. 시간대 모드는 IANA 이름을 검색하고 브라우저 존을 쓰며 DST를 반영한 Intl 오프셋을 적용합니다. 형식 모드는 로케일 읽기 형식, 12/24시간, 모호한 날짜 거절이 있습니다. 날짜 차이는 별도 모드입니다.

변환은 브라우저 Date와 Intl API를 씁니다. Date가 나타낼 수 없는 값은 거절됩니다. 자동 단위는 11~12자리 값을 추측하지 않으니 초 또는 밀리초를 고르세요.

날짜와 타임스탬프 변환 자체는 브라우저에서 이루어집니다. 변환을 위해 입력이 NEXNARA 서버로 전송되지 않습니다. 광고와 다른 사이트 기능은 네트워크를 사용합니다.

날짜·시간·Unix Timestamp 변환에 타임스탬프를 붙여 넣고 단위를 고르기 전에 UTC, 로컬 시간, ISO 8601을 비교하세요.

FAQ

Unix 타임스탬프를 날짜로 어떻게 바꾸나?

단위를 아세요. JavaScript에서 초는 new Date(n * 1000), 밀리초는 new Date(n)입니다. 그다음 UTC, 로컬, 존으로 표시합니다.

Unix 타임스탬프는 초인가 밀리초인가?

둘 다입니다. 약 10자리는 종종 초, 약 13자리는 종종 밀리초이지만 heuristic이지 법칙이 아닙니다.

타임스탬프가 왜 1970으로 나오나?

보통 초 값을 밀리초로 읽었기 때문입니다. Unix Timestamp가 1970년으로 나오는 이유: 초와 밀리초 차이를 보세요.

Unix 타임스탬프는 항상 UTC인가?

epoch는 UTC를 기준으로 정의되고 숫자는 instant를 가리킵니다. 표시 시간대는 별개입니다. 저장된 “UTC 시간대 필드”가 아닙니다.

Unix 타임스탬프에 시간대가 들어 있나?

없습니다. IANA 식별자를 담지 않습니다. 시간대는 instant를 표시할 때 적용합니다.

날짜를 Unix 타임스탬프로 어떻게 바꾸나?

UTC ISO 문자열에서 date.getTime()은 밀리초, Math.floor(date.getTime() / 1000)은 초입니다.