zone.tabにタイムゾーンが足りないのはなぜですか?

zone.tabにタイムゾーンが足りないのはなぜですか?

一般的な*nixボックスには、1000を超えるタイムゾーンファイル(/user/share/zoneinfoにあります)があります。これらの多くは過去の日付だけが異なり、これは最近の日付または現在の時間だけを考慮するプログラムとは関係ありません。だが何があってもある。はいそれらの多くがあり、そのうちの1つをシステムのタイムゾーンに選択し、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いくつかの用途の説明があります。

主な用途は、都市マップとその場所を表示して、ユーザーが近くの都市をクリックしてタイムゾーンを選択できるようにするようです。

これを念頭に置いて、各都市のすべてのエイリアスを知る必要はありません。 (しかし、常に国ごとに1つ以上の都市が含まれているようです。)

各領域の追加の別名は、次の場所に保存されます。データは次のとおりです。ソースコード

たとえば、backwardファイルに

Link    Asia/Kolkata        Asia/Calcutta

人々が新しいスペルや古いスペルを使用できるようにするためです。

の他のすべてのファイルは、/usr/share/zoneinfoこのソースコードを使用して生成されますzic

ところで、別名が600個にもならないのになぜこんなに大きな違いが出るのでしょうか?

通常、各タイムゾーンに対して3つのバージョンposixrightつまりシステムデフォルトが作成されます。

$ 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含めます。

また見なさい:

おすすめ記事