Unix 타임스탬프란? 에포크 시간의 완전한 설명
빠른 답변
유닉스 타임스탬프는 1970년 1월 1일 00:00:00 UTC (유닉스 시대) 이후의 초입니다. 시간대에 독립적이며 비교하기 쉽습니다. 자바스크립트는 밀리초 (13자리) 를 사용하며, 유닉스와 대부분의 API는 초 (10자리) 를 사용합니다. 무료 타임스탬프 변환기를 사용하여 타임스탬프와 사람이 읽을 수 있는 날짜로 변환하세요.
소개
Unix 타임스탬프(Unix epoch 시간, POSIX 시간 또는 Unix 시간이라고도 함)는 1970년 1월 1일 00:00:00 UTC(Unix epoch로 알려진 순간) 이후 경과된 초 수입니다. 타임스탬프는 시간대에 독립적이고(항상 UTC) 비교하기 쉽고(간단한 정수 비교) 간결하기 때문에 운영 체제, 데이터베이스, 로그 및 APIs에서 널리 사용됩니다. 그러나 사람이 읽을 수 없습니다. 1693526400은 변환 없이는 아무 의미도 없습니다. 이 가이드에서는 타임스탬프가 무엇인지, 어떻게 사용하는지 설명합니다.
단계별
-
Unix 시대 이해하기
유닉스 시대는 1970년 1월 1일 00:00:00 협정 세계시 (UTC) 입니다. Unix 타임스탬프는 이 순간부터의 초 수입니다. 포지티브 타임스탬프는 에포크 이후입니다. 네거티브 타임스탬프 (일부 시스템에서 지원됨) 는 그 이전입니다.
-
초와 밀리초 구별
유닉스 타임스탬프는 일반적으로 초 단위입니다 (2026년 현재 10자리, 예: 1693526400). JavaScript의 Date.now () 및 Date.getTime () 은 밀리초 (13자리, 예: 1693526400000) 를 반환합니다. 항상 API가 예상하는 단위를 확인하십시오. 가장 일반적인 타임스탬프 버그입니다.
-
시간대 독립성 이해
Unix 타임스탬프는 항상 UTC입니다. 사용자의 시간대에 따라 달라지지 않습니다. 특정 시간대에 타임스탬프를 표시하려면 날짜로 변환하고 시간대 오프셋을 적용합니다. 따라서 타임스탬프는 저장 및 비교에 이상적입니다.
-
2038년 문제에 대해 알아보기
타임스탬프에 32비트 부호 있는 정수를 사용하는 시스템은 2038년 1월 19일 03:14:07 UTC ('Y2038 문제') 에 오버플로됩니다. 64비트 정수 또는 JavaScript 숫자 (64비트 플로트) 를 사용하는 시스템은 영향을 받지 않습니다. 최신 시스템은 대체로 Y2038 안전하지만 레거시 임베디드 시스템은 그렇지 않을 수 있습니다.
예
알려진 날짜에 대한 타임스탬프
입력: 2023-09-01 00:00:00 UTC
산출: 1693526400 (초) 또는 1693526400000 (밀리초)
유닉스 시대
입력: 1970-01-01 00:00:00 UTC
산출: 0
Y2038 문제 경계
입력: 2038-01-19 03:14:07 UTC
산출: 2147483647 (최대 32비트 부호 있는 정수)
일반적인 문제
- 초와 밀리초 혼합 -JavaScript는 밀리초 (Date.now ()) 를 사용하고 Unix와 대부분의 API는 초를 사용합니다. 1000으로 나누어 ms를 초로 변환하고 역으로 1000을 곱합니다.
- 시간대 혼동 - 타임스탬프는 UTC입니다. 표시할 때 사용자의 현지 시간대로 변환하거나 UTC를 지정합니다. 원시 타임스탬프에 오프셋을 적용하지 마십시오.
- Year 2038 problem -32-bit signed integer timestamps overflow on 2038-01-19. 이를 방지하려면 64비트 정수 또는 자바스크립트 번호를 사용하십시오.
- 음수 타임스탬프 - 1970년 1월 1일 이전 날짜에는 음수 타임스탬프가 있습니다. 일부 시스템에서는 이를 지원하지 않습니다.
팁
- API이 초 또는 밀리초를 예상하는지 항상 확인하세요. 이것이 가장 일반적인 타임스탬프 버그입니다.
- APIs에서 사람이 읽을 수 있는 타임스탬프에는 ISO 8601 문자열(예: "2023-09-01T00:00:00Z")을 사용합니다. 저장 및 계산을 위해 Unix epoch를 사용합니다.
- JavaScript Date.now()는 밀리초를 반환합니다. 1000으로 나누고 바닥을 구해 초를 얻습니다.
- 타임스탬프 변환기를 사용하여 브라우저에서 타임스탬프와 사람이 읽을 수 있는 날짜 사이를 변환하세요.