왜 zone.tab에 많은 시간대가 빠져 있습니까?


12

일반적인 * nix 박스 (/ user / share / zoneinfo에 있음)에는 수천 개가 넘는 시간대 파일이 있습니다. 대부분은 최근 날짜 또는 현재 시간에 대해서만 관심이있는 프로그램과 관련이 거의없는 역사적 날짜 만 다릅니다. 그러나 관계없이, 거기에 있는 이들의 톤, 그리고 시스템뿐만 아니라 TZ 환경 변수를 설정하여 특정 프로그램이나 쉘 그들 중 하나를 사용하는 시간대로 중 하나를 선택하는 완벽하게 합법적이다. 그들은 모두 유효합니다.

그리고 zone.tab 파일 (/usr/share/zoneinfo/zone.tab)이 있습니다. 400 개가 넘는 시간대 만 표시됩니다 (시스템의 414 개). 시간대 가 많이 없습니다 . 문제는 왜입니까? 왜 모두 거기에 있지 않습니까? 그리고 그들이 모두 거기에 없기 때문에, 어느 것이 거기에 들어갈 것인지는 어떻게 결정됩니까?

zone.tab에는 국가 코드와 각 시간대에 대한 경도 및 위도뿐만 아니라 파일이 존재하는 이유 일 수 있으며, 모든 시간대에 실제로 해당되는 것은 아닙니다 (예 : UTC에 해당 시간대가없는 경우). , zone.tab에 있지 않기 때문에 모든 시간대를 zone.tab에 나열 할 수있는 것은 아닙니다. 그러나 실제 도시 또는 지역에 해당하는 모든 도시가 왜 파일에 나열되어 있지 않습니까? 실제로 사용 가능한 1000+ 대신 414 만있는 이유는 무엇입니까?

답변:


6

zone.tab 포함을위한 갱신 된 클레임 이라는 제목의 스레드 zone.tab에 사용되는 내용에 대한 설명이 있습니다.

주요 용도는 도시와 위치의지도를 표시하여 사용자가 가까운 도시를 클릭하여 시간대를 선택할 수 있도록하는 것 같습니다.

이를 염두에두고 각 도시의 별명을 모두 알 필요는 없으며,이를 참조하는 선호되는 방법 중 하나만으로도 충분합니다. 그러나 각 국가마다 항상 하나 이상의 도시가 포함되어있는 것 같습니다.

각 영역의 다른 별명은 tzdata 소스 코드에 저장됩니다 .

예를 들어, backward파일은

Link    Asia/Kolkata        Asia/Calcutta

사람들이 새로운 철자법이나 오래된 철자를 사용할 수 있습니다.

다른 모든 파일은을 /usr/share/zoneinfo사용하여이 소스 코드에서 생성됩니다 zic.

그러나 600 개 이상의 별칭이 없기 때문에 왜 큰 차이가 있습니까?

: 일반적으로 세 가지 생성 된 각 시간대의 버전이있다 posix, right그리고 시스템의 기본.

$ cd /usr/share/zoneinfo
$ find right -type f | wc -l
581
$ find posix -type f | wc -l
581
$ find . \( -name posix -o -name right \) -prune -o -type f | wc -l
586

tzcode의 Makefile 그 생성, 그들에 대한 이유를 언급하는 방법 쇼 : posix윤초를 무시 right를 포함한다.

또한보십시오:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.