한국어

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

Unix 시간이 1 1월에 시작되는 이유 1970: 시대의 간략한 역사

· 배경

타임스탬프 유닉스 시간 데이터 형식

Unix epoch의 0점에서 방사되는 타임라인
원본 ToolAcre 벡터 일러스트레이션

1 1월 1970에는 아무 일도 일어나지 않았습니다. 날짜는 Unix의 원래 시계가 오버플로될 위험이 있으므로 편의를 위해 선택되었습니다. 이 게시물은 초기 Unix 시계, 초로의 전환, 그리고 이 규칙이 어떻게 모든 곳에 퍼졌는지를 설명합니다.

아무도 축하하지 않는 날짜 — 1970이 반세기 후에도 버그, 기본값 및 대시보드에 계속 나타나는 이유

1월 1970은 소프트웨어가 짧은 기간이나 초 수를 밀리초로 착각할 때마다 나타납니다. ToolAcre에 의해 생성된 대체 생일이 아닙니다. 이는 입력이 해석된 영점입니다. 에포크 0에 대한 테스트는 `1970-01-01T00:00:00.000Z` 및 목요일을 반환합니다.

따라서 해당 날짜를 보는 것은 진단적입니다. 0에 가까운 값, 0으로 강제 변환된 누락된 필드 또는 스케일 불일치가 모두 근처에 있을 수 있습니다. 포맷을 비난하기 전에 원시 값을 캡처하십시오. 달력 출력에는 수신된 산술이 표시됩니다.

ToolAcre의 주목할 만한 시대 테이블은 0에 의도적인 레이블을 제공하여 1970이 브라우저에서 선택한 오류 페이지가 아니라 정의된 참조임을 강화합니다.

Unix의 첫 번째 시계 — 1971 시작부터 60분의 1초를 세고 3년 이내에 32비트 공간이 부족해집니다.

통합 문서는 1971에서 60분의 1을 세는 초기 시계에 대한 자세한 설명을 제공했습니다. 필요한 저장소 소스 중 어느 것도 해당 기록을 문서화하지 않습니다. 메모리에서 반복하면 나중에 외부 기록이 지원하더라도 저작 계약을 위반하게 됩니다.

시연할 수 있는 것은 현재 축입니다. 에포크의 0, 그 이후의 양수 초, 그 전의 음수 초입니다. 이 메커니즘은 변환기를 사용하고 소프트웨어를 진단하는 데 충분합니다. 미래의 역사적 기사는 코드를 설계 회의의 증거로 취급하기보다는 검토된 기본 또는 학문적 소스를 추가해야 합니다.

저장소는 Unix의 첫 번째 시계 디자인을 소스로 제공하지 않으므로 역사적 재구성이 주장되지 않습니다.

ToolAcre는 입력 Unix 타임스탬프의 이름을 지정하고 오류 안내에서 이를 1970-01-01 UTC 이후의 초 또는 밀리초로 정의합니다. 출처는 해당 연도가 선택된 이유, 진원도가 중요한지 또는 디자이너가 원하는 지평선이 무엇인지 설명하지 않습니다. 그 동기는 생략된 채로 남아 있습니다.

산술은 고정 원점의 지속적인 유용성을 설명합니다. 뺄셈은 경과 거리를 산출하고 비교 순서는 순간을 산출하며 부호는 값이 0의 어느 쪽에 있는지 나타냅니다. 0을 선택하는 것이 일반적입니다. 생산자와 소비자 사이의 일관성은 숫자를 상호 운용 가능하게 만듭니다.

이러한 구별은 규칙과 결과를 별도로 유지합니다. 역사가들이 컨벤션의 기원에 대한 증거를 계속 평가하는 동안 소프트웨어는 결과에 자신있게 의존할 수 있습니다.

구현된 정의는 1970을 사용합니다. 그것을 선택하는 동기에는 여기에 없는 역사적 출처가 필요합니다.

테스트는 POSIX 변환처럼 매일 모델링되며 `2016-12-31T23:59:59Z`에서 `2017-01-01T00:00:00Z`로 명시적으로 점프합니다. 이는 이 도구의 동작에 대한 실행 가능한 증거입니다. 이는 외부 표준의 문구나 전체 범위에 대한 인용이 아닙니다.

표준 주장을 구현 테스트와 구별되게 유지하십시오. 테스트는 릴리스가 해당 픽스처에서 수행하는 작업을 증명합니다. 표준 문서는 준수 시스템이 수행해야 하는 작업을 정의합니다. 여기서 실제 계약은 공식화 기록을 만들지 않고도 결과를 예측할 수 있을 만큼 충분히 명확합니다.

또한 테스트는 향후 리팩터링이 출력에 특수 도약 레이블을 자동으로 삽입하는 것을 방지합니다. 규칙이 존재하는 이유를 과장하지 않고 관찰 가능한 호환성이 보호됩니다.

ToolAcre는 POSIX 스타일 모델을 테스트하지만 표준 인용으로 사용되지 않습니다.

JavaScript Date는 에포크 수를 밀리초 단위로 나타내는 반면 ToolAcre는 Unix 초를 허용하고 1,000을 곱하여 변환합니다. 경로는 두 가지 형식도 모두 반환합니다. 이 경계는 웹 애플리케이션이 세 개의 추가 십진수 0을 사용하여 동일한 순간을 자주 노출하는 이유를 설명합니다.

저장소는 데이터베이스, C 라이브러리 및 기타 생태계가 시대 표현을 채택한 연대기를 설정할 수 없습니다. 소스가 없는 스프레드를 설명하는 대신 현재의 상호 운용성 이음새를 표시하고 사용된 단위에 레이블을 지정합니다. 이는 현재 일하는 개발자에게 실행 가능한 증거입니다.

이러한 제한은 익숙한 콘텐츠 오류를 방지합니다. 즉, 나중에 독자가 누적된 반복을 문서 증거로 착각할 때까지 인용 없이 반복되는 일련의 그럴듯한 이정표입니다.

저장소 증거는 전체 확산 기록이 아닌 JavaScript의 밀리초 표현을 보여줍니다.

고정 시대에는 로컬 영역이 없습니다. ToolAcre는 결과 날짜를 UTC로 형식화하고 브라우저의 로컬 영역에서 별도로 형식화합니다. −1 테스트에서 알 수 있듯이 음수 값은 0보다 먼저 확장됩니다. 이러한 결과는 숫자 축 및 서식 지정 레이어에서 직접 따릅니다.

구현의 날짜 범위는 ±8.64×101⁵밀리초입니다. 그것은 선택된 표현의 한계이지 한 시대의 추상적 개념에 내재된 한계가 아닙니다. 변환기 결과를 일반화하기 전에 항상 누구의 범위와 단위가 논의되고 있는지 식별하십시오.

로컬 포맷터는 오프셋에 따라 UTC 경계 이전 또는 이후의 날짜를 적용할 수 있습니다. 그것은 0으로 움직이지 않습니다. 인간의 달력 투영만 변경됩니다.

여기서 다루지 않는 내용 — 자체 기록이 있는 1900, 1601 및 1980와 같은 다른 시스템의 시대

다른 시스템은 또 다른 0과 다른 스케일을 선택할 수 있으며, 이것이 두 ToolAcre 단위 모두에서 큰 정수가 무의미한 상태로 남아 있을 수 있는 이유입니다. 이 문서에서는 1900, 1601 또는 1980 원본의 기록을 설명하지 않습니다. 대신 340 조항은 불일치를 인식하고 문서화된 정의에서 변환을 도출하는 데 중점을 둡니다.

출처를 알 수 없는 경우 반복적으로 0을 이동하는 대신 소스 문서와 비교하세요. Unix 변환기는 의도적으로 1970을 가정합니다. 하나의 숫자에서 외국 시대를 자동 식별할 수 없습니다. 단위와 함께 원점을 유지하면 산술 성공이 의미상 실수가 되는 것을 방지할 수 있습니다.

다른 시대의 기원은 여기에 역사를 주장하지 않고 별도로 비교됩니다.

신뢰할 수 있는 교훈은 기계적입니다. Unix 0은 1970 UTC의 시작 부분에 매핑되고, 기호는 그 주위로 확장되며, 초는 날짜 형식 지정 이전의 JavaScript 밀리초가 됩니다. ToolAcre는 0, −1 값 및 주목할 만한 에포크 테이블을 사용하여 이러한 각 사실을 관찰 가능하게 만듭니다.

사람들이 해당 규칙을 선택한 이유는 최신 코드에서 추론한 것이 아니라 출처 기록에 속합니다. 그 경계를 존중하면 더 짧지만 더 진실한 설명이 만들어집니다. 산술을 위해 변환기를 사용하십시오. 동기나 이정표를 부여하기 전에 적절한 역사적 자료를 사용하십시오.

증거 규율은 기술적 정확성의 일부입니다. 정확한 누락은 역사적 계정이 책임감 있게 확장되기 전에 필요한 새로운 소싱이 무엇인지 관리자에게 정확히 알려줍니다.