개발자 도구 · Unix 타임스탬프 변환기
UTC, GMT 및 TAI: 타임스탬프가 실제로 계산하는 항목
· 배경
타임스탬프 유닉스 시간 시간대
GMT, UTC 및 TAI는 종종 동의어로 취급되지만 서로 다른 역사를 가진 세 가지 다른 항목입니다. 이 게시물에서는 각 변환기와 Unix 시간 및 일상 변환기가 실제로 따르는 변환기에 대해 설명합니다.
한 서버에 있는 세 개의 이름 — 날짜 헤더의 GMT, 로그의 UTC, 연구 논문의 TAI, 모두 동일한 초에 대한 것입니다.
서버는 한 프로토콜에 "GMT"를 표시하고, 로그에 "UTC"를 표시하고, 과학 데이터에 다른 시간 척도를 표시할 수 있습니다. 유사한 시계 라벨은 상호 교환성을 부여하지 않습니다. 첫 번째 작업은 프레젠테이션 계층에서 모든 이름을 UTC로 바꾸는 대신 각 필드 뒤에 있는 계약을 식별하는 것입니다.
ToolAcre의 계약은 명시적입니다. Unix 초 또는 밀리초는 ISO 8601 UTC 문자열, 읽을 수 있는 UTC 행 및 브라우저 로컬 행이 됩니다. 스케일 선택기가 없습니다. 이 경로가 관련되기 전에 Unix가 아닌 모든 개수는 자체적으로 신뢰할 수 있는 정의를 사용하여 변환되어야 합니다.
유용한 재고 기록은 모든 필드 옆에 규모와 직렬화를 기록합니다. 특히 데이터가 과학 및 응용 시스템을 넘을 때 유사한 라벨이 출처를 지워서는 안 됩니다.
그리니치 표준시 — 자오선의 태양시를 의미하며, 그 역사를 세계의 기준으로 삼고, 이것이 이제 표준이 아닌 시간대인 이유
개요는 그리니치 표준시의 역사와 현대 법적 사용법을 제공했습니다. 이러한 사실은 변환기 구성, 소스 또는 테스트에 존재하지 않습니다. 따라서 이 기사에서는 추론을 통해 코드 저장소를 역사적 인용으로 바꾸지 않습니다.
운영상 입력에 GMT가 표시되면 정의 프로토콜을 검사합니다. 일반 적용 날짜와 동일하게 보이는 시계 라벨에도 특정 문법 또는 정책 요구 사항이 적용될 수 있습니다. ToolAcre는 UTC 레이블을 출력하며 GMT 파서 또는 포맷터로 표시되어서는 안 됩니다.
상호 운용성이 용어에 따라 달라지는 경우 코드 검토에서 제어 사양을 연결하세요. 디스플레이 라벨은 와이어 형식 요구 사항을 자동으로 나타내서는 안 됩니다.
GMT 기록 및 법적 상태는 저장소 증거 외부에 있습니다.
UTC 행은 `timeZone: "UTC"`을 사용하여 `Intl.DateTimeFormat`에 의해 생성됩니다. ISO 행은 `toISOString()`에서 나옵니다. 이러한 호출은 이 인터페이스가 범용 읽기에 어떻게 레이블을 지정하는지 증명합니다. UTC가 채택된 시기나 이를 뒷받침하는 제도적 메커니즘은 문서화되어 있지 않습니다.
디버깅의 경우 레이블은 현재 로컬 영역과 관계없이 공유 참조를 설정하는 데 충분합니다. 시스템 간 ISO 문자열 또는 에포크 값을 비교합니다. 출처가 다른 척도를 사용하는 경우 친숙한 날짜가 동일한 계산을 의미한다고 가정하기보다는 먼저 관계를 증명하십시오.
정식 UTC 출력은 로컬 영역 선택을 제거하므로 환경을 비교하는 데 특히 유용합니다. 그러나 선언되지 않은 시간 척도의 입력은 변환하지 않습니다.
변환기는 UTC 레이블을 지정하지만 UTC 정의 기록을 문서화하지 않습니다.
국제 원자 시간은 코드, 구성 또는 테스트에 표시되지 않습니다. 여기에는 현재 오프셋, 과거 격차 또는 변환 알고리즘이 표시되지 않습니다. 메모리에서 이러한 상수를 제공하는 것은 작업에서 금지하는 일종의 미묘한 시간 요구와 정확히 같습니다.
신뢰할 수 있는 라이브러리 또는 소스가 해당 날짜에 대한 변환을 수행할 때까지 TAI 레이블이 지정된 값을 TAI로 유지합니다. Unix 초로 직접 붙여넣으면 잘못된 원점이나 배율이 자동으로 적용되어 여전히 세련된 ISO 문자열을 얻을 수 있습니다. 가독성은 검증이 아닙니다.
외부 변환에는 변수 및 유형 이름에 스케일 이름이 포함되어야 합니다. 산술 전에 해당 레이블을 지우면 나중에 그럴듯한 ISO 결과를 감사할 수 없게 됩니다.
TAI가 구현되지 않았으므로 간격이나 변환 상수가 주장되지 않습니다.
테스트된 Unix 모델은 `2016-12-31T23:59:59Z`의 에포크 값 1,483,228,799에서 자정의 1,483,228,800로 진행됩니다. `23:59:60`에 대한 고유한 입력이 없습니다. 이것이 이 구현에서 POSIX 스타일 동작의 구체적인 의미입니다.
변환기가 해당 규칙에 따라 Unix 카운트를 UTC 라벨이 붙은 민간 출력에 매핑한다고 말하는 것이 합리적입니다. 모든 역사적 도약에 걸쳐 정수를 정확한 원자 초 단위로 호출하는 것은 오해의 소지가 있습니다. 이 도구는 실험실 시간 단위 측정이 아닌 소프트웨어 날짜를 만듭니다.
구별은 미묘하지만 실용적입니다. 시퀀스 계산은 Unix 규칙을 상속하고, 민간 디스플레이는 Date 및 Intl 형식을 상속합니다. 두 경로 모두 원자 시간 메타데이터를 노출하지 않습니다.
테스트된 Unix 모델은 윤초 값 없이 POSIX 스타일 초를 UTC 레이블로 매핑합니다.
통합 문서의 HTTP 및 영국 법적 시간 예시에는 외부 프로토콜과 법적 소스가 필요합니다. 생략되었습니다. 헤더 또는 규제된 레코드를 구현할 때 구어체 동등성을 기반으로 UTC 또는 GMT 문구를 선택하는 대신 실제 사양을 따르십시오.
이 모듈 내에서 `GMT`은 제로 오프셋에 대한 Intl의 짧은 오프셋 렌더링의 일부로 나타날 수 있지만 이는 프로토콜 날짜를 생성하겠다는 약속이 아니라 포맷터 출력입니다. UI 디스플레이를 유선 형식 직렬화 및 법적 용어와 별도로 유지하세요.
제로 오프셋 레이블을 반환하는 포맷터로는 프로토콜 유효성 검사가 충분하지 않습니다. 전용 파서 및 고정 장치를 사용하여 전체 직렬화된 헤더 또는 규제된 레코드를 테스트합니다.
GMT의 프로토콜 및 법적 사용에는 외부 소스가 필요하므로 생략됩니다.
GPS 시간 및 천문 날짜 척도가 허용되는 모드를 벗어났습니다. UI는 초, 밀리초 또는 자동 감지만 제공하며 지원되는 두 단위 모두 Unix 시대를 가정합니다. 원점이나 도약 규칙을 변경하는 확인란이 없습니다.
다른 저울의 숫자는 섭취 및 보관 과정에서 라벨을 부착해야 합니다. 특정 목적에 맞게 제작된 소스 방식으로 변환하고 원본을 유지하세요. 파생된 Unix 값만 이 패널에 속합니다. 그렇지 않으면 그럴듯한 결과가 근본적인 불일치를 은폐할 수 있습니다.
지원되지 않는 척도를 거부하는 것이 추측된 상수를 제공하는 것보다 더 안전합니다. 시간 척도 오프셋은 날짜에 민감할 수 있으며 여기서 잘못된 정밀도는 과학적 관찰의 순서를 바꿀 수 있습니다.
GPS 및 천문 저울은 허용되지 않는 모드입니다.
ToolAcre의 범용 행을 참조할 때 UTC를 말하세요. 왜냐하면 그것이 소스가 요청하는 것과 UI 레이블이기 때문입니다. 숫자 입력에 대해 Unix 초 또는 밀리초를 말하십시오. UTC, GMT 및 원자 시간을 동의어로 축소하는 광범위한 설명은 피하세요.
이름 지정의 정확성은 디버깅 도구입니다. 이는 필요한 변환과 확인되지 않은 주장을 식별합니다. 이 변환기는 하나의 경로(UTC/local 디스플레이에 대한 Unix 카운트)에 대한 강력한 증거를 제공하며 관련 없는 스케일에 대해서는 의도적으로 아무것도 제공하지 않습니다.
문서를 작성할 때 각 용어를 구체적인 필드 또는 포맷터에 첨부하세요. 막연한 주장은 세 가지 모두 "동일한 시간을 의미한다"는 정확한 전환 책임이 숨겨져 있다고 주장합니다.