zone.tab에 시간대가 너무 많이 누락된 이유는 무엇입니까?

zone.tab에 시간대가 너무 많이 누락된 이유는 무엇입니까?

일반적인 *nix 상자(/user/share/zoneinfo)에는 수천 개가 넘는 시간대 파일이 있습니다. 그 중 다수는 최근 날짜만 고려하거나 심지어 현재 시간만 고려하는 프로그램과 관련성이 거의 없는 과거 날짜만 다릅니다. 하지만 상관없이 거기에는~이다그 중 하나를 시스템의 시간대로 선택하고 TZ 환경 변수를 설정하여 특정 프로그램이나 셸에 사용하는 것은 완전히 합법적입니다. 모두 유효합니다.

그리고 zone.tab 파일(/usr/share/zoneinfo/zone.tab)이 있습니다. 여기에는 400개가 조금 넘는 시간대만 나열되어 있습니다(내 시스템에서는 414개). 누락된 항목이 있습니다.많은시간대의. 그렇다면 질문은 왜일까요? 왜 그 사람들은 모두 거기에 없나요? 그리고 그것들이 모두 거기에 들어 있는 것이 아니기 때문에 어떤 것을 거기에 넣을지는 어떻게 결정됩니까?

zone.tab에는 국가 코드와 함께 나열된 각 시간대의 경도와 위도(아마도 이것이 파일이 존재하는 이유임)가 포함되어 있습니다.모두시간대에는 실제로 그런 항목이 있습니다(예: UTC에는 해당 항목이 없고 zone.tab에도 없습니다).모든시간대는 zone.tab에 나열될 수 있습니다. 그런데 실제 도시나 지역에 해당하는 모든 항목(대부분이 그렇듯이)이 파일에 나열되지 않는 이유는 무엇입니까? 실제로 사용 가능한 1000개 이상의 숫자 대신 414개만 사용 가능한 이유는 무엇입니까?

답변1

제목의 스레드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포함합니다.

또한보십시오:

답변2

다음 링크에 따라http://en.wikipedia.org/wiki/Tz_database

시간대 데이터베이스는 이제 인터넷 할당 번호 관리 기관(Internet Assigned Numbers Authority)에서 관리합니다.

관련 정보