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

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

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

그런 다음 zone.tab 파일(/usr/share/zoneinfo/zone.tab)이 있습니다. 여기에는 400개 이상의 시간대만 나열됩니다(내 시스템에서는 414개). 하나가 없어많은시간대. 그렇다면 질문은 왜일까요? 왜 거기에는 없나요? 그것들이 모두 거기에 있지 않기 때문에 거기에 넣을 것을 어떻게 결정합니까?

zone.tab에는 나열된 각 시간대에 대한 국가 코드와 경도 및 위도가 포함되어 있습니다(이것이 아마도 파일이 존재하는 이유일 것입니다).모두시간대에는 이러한 항목이 있습니다(예: UTC에는 이러한 항목이 없으며 zone.tab에도 없습니다).모든시간대는 zone.tab에 나열될 수 있습니다. 그런데 왜 파일에 나열된 모든 정보가 실제 도시나 지역(대부분의 경우)에 해당하지 않는 걸까요? 실제 숫자가 1,000개가 넘는 대신 414개만 사용 가능한 이유는 무엇입니까?

답변1

주제는zone.tab에 포함을 다시 요청하세요.zone.tab일부 용도에 대한 설명 이 제공됩니다 .

주요 용도는 도시 지도와 해당 위치를 표시하여 사용자가 인근 도시를 클릭하여 시간대를 선택할 수 있도록 하는 것으로 보입니다.

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

각 영역에 대한 추가 별칭은 다음 위치에 저장됩니다.데이터는 다음과 같습니다.소스 코드.

예를 들어, 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

이것지마 Makefile생성 방법을 보여주고 그 이유를 언급합니다. posix윤초를 무시하고 right포함합니다.

또한보십시오:

답변2

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

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

관련 정보