한국어

개발자 도구 · Unix 타임스탬프 변환기

초 또는 밀리초? 13자리 시대에서 10자리 시대를 말함

· 작동 원리

타임스탬프 유닉스 시간 개발자 워크플로

한 순간을 가리키는 10자리 초 값과 13자리 밀리초 값
원본 ToolAcre 벡터 일러스트

오늘날 만나는 대부분의 신기원 값은 10자리(초) 또는 13자리(밀리초)이며, 잘못 추측하면 수만 년이 되는 날짜가 됩니다. 이 게시물에서는 자릿수 뒤에 숨겨진 산술과 변환기가 단위를 추론하는 대신 단위를 명시해야 하는 이유를 설명합니다.

1700000000 또는 1700000000000? — 동일한 순간이 두 가지 방식으로 작성되었으며 대시보드에는 먼 미래의 날짜가 표시되었습니다.

로그 값 1700000000과 페이로드 값 1700000000000은 동일한 순간을 설명할 수 있습니다. 첫 번째 시간을 밀리초로 처리하면 대시보드가 ​​1970년 1월에 해당됩니다. 초를 초로 간주하면 날짜가 수천년 후로 이동합니다. 타임스탬프는 단지 개수에 단위와 시작점을 더한 것일 뿐이므로 문서가 없는 Create_at라는 데이터베이스 열은 필수 정보를 생략했습니다.

현재 초가 10자리인 이유 — 2001년의 10억 번째 초, 2286까지의 10자리 범위, 9자리의 의미

Unix 시간은 일반적인 POSIX 규칙에 따라 1970-01-01 00:00:00 UTC부터 경과된 초를 계산합니다. 카운터는 2001년에 10억을 넘었습니다. 현재 양수 날짜의 경우 일반적으로 십진수 10자리입니다. 2286년에 100억 개가 될 때까지 10자리로 유지됩니다. 이는 ISO 날짜 문자열에 적용된 규칙이 아니라 10진수 표기법의 속성입니다. 시대 이전의 음수 값과 현재보다 훨씬 먼 날짜는 간단한 숫자 계산 단축키를 무효화합니다.

밀리초 카운트가 13인 이유(1000의 인수, 3자리 추가), JavaScript 및 Java 규칙의 유래

JavaScript Date.getTime()은 일반적으로 밀리초를 계산하여 초 타임스탬프에 1,000을 곱합니다. 3개의 0은 현재 10자리 초를 13자리 밀리초로 만듭니다. 예를 들어 1,700,000,000초는 1,700,000,000,000밀리초가 됩니다. 둘 다 2023-11-14T22:13:20.000Z입니다. 가정된 단위를 명시하지 않고 구분 기호만 삽입하는 변환기는 유효한 숫자를 그럴듯하지만 잘못된 날짜로 바꿀 수 있습니다.

추측이 잘못된 부분 - 신기원 근처의 작은 값, 2001년 이전 날짜, 자릿수가 식별되지 않는 미래 날짜

밀리초 값이 짧을 수 있는 1970년 근처, 초의 숫자가 10자리 미만인 2001년 이전 또는 마이크로초 및 나노초 카운터를 사용하면 휴리스틱이 실패합니다. ToolAcre는 기본적으로 10¹¹ 미만의 크기를 초로, 더 큰 값을 밀리초로 해석하고 사용된 단위에 레이블을 지정합니다. 해당 임계값은 명확한 형식 디코더가 아니라 실제적인 추측입니다. 특정 API에서 제공하는 타임스탬프는 길이가 특이하더라도 해당 API 문서를 사용하여 해석되어야 합니다.

실제 예: 하나의 로그에서 세 개의 값 — 1700000000, 1700000000000 및 1700000000000000, 초, 밀리초, 마이크로초 단위로 읽음

예시 로그의 세 정수는 트랩을 보여줍니다. 1700000000을 초로 해석하고 1700000000000을 밀리초로 해석합니다. 둘 다 2023-11-14T22:13:20Z로 해석됩니다. 1700000000000000을 마이크로초로 해석하고 100만으로 나누어 동일한 초 수를 얻습니다. ToolAcre 변환기는 마이크로초 모드가 아닌 초 또는 밀리초를 허용합니다. 먼저 단위를 변환하지 않고 세 번째 숫자를 붙여넣으면 의도한 순간이 확인되지 않습니다. 디버깅하는 동안 항상 원시 필드와 해당 단위를 함께 유지하세요.

추측이 아닌 단위를 명시해야 하는 이유 — 변환기가 적용된 단위를 표시하여 잘못된 가정이 자동이 아닌 눈에 보이는 이유

타임스탬프를 보내는 서비스는 스키마에서 단위 이름을 지정하거나 명시적인 오프셋과 함께 ISO 8601 텍스트를 사용해야 합니다. 레거시 필드가 문서화되지 않은 경우 결정하기 전에 여러 값을 다른 신뢰할 수 있는 이벤트 시간과 비교하십시오. 우연히 그럴듯한 단일 날짜는 증거가 충분하지 않습니다. 변환기는 적용된 단위를 표시하므로 1,000배의 실수를 잡을 수 있는 기회를 제공합니다. 장기 API 계약으로 자동 추측에 의존하지 않고 명시적으로 단위를 변경하고 비교합니다.

이것이 다루지 않는 것 — 문자열, ISO 8601 텍스트 또는 스프레드시트 일련 날짜로 저장된 타임스탬프는 다른 문제입니다.

이 문서에서는 Excel 일련 날짜, 2026-09-28T10:15Z와 같은 문자열 또는 현지 시계 판독값의 시간대 형식에 대해 설명하지 않습니다. 그것들은 다른 표현입니다. Unix 타임스탬프는 순간을 나타냅니다. 동일한 순간이 다른 구역에서는 다른 벽시계 시간으로 나타납니다. 윤초 규칙도 별도로 처리할 가치가 있으며 32비트 부호 있는 카운터는 2038년에 초 대 밀리초 질문과 구별되는 오버플로 문제가 있습니다.

요점: 숫자를 세고 단위를 확인합니다. 그리고 Unix 타임스탬프 변환기가 레이블이 붙은 단위를 사용하여 초와 밀리초를 모두 읽는 방법을 알아봅니다.

초기 힌트로 숫자를 세고, 생산자가 명시한 단위와 알려진 사건을 하나 이상 확인하세요. Unix 타임스탬프 변환기는 적용된 초/밀리초 가정을 표시하고 UTC와 로컬 표현을 모두 브라우저에 인쇄합니다. 깔끔하게 보이는 날짜가 가치를 생성한 시스템의 반대 문서보다 우선하지 않도록 하십시오.