私のシステムのzoneinfoデータベースにすべてのタイムゾーンのリストが欲しいのです(注:システムはdebian strecth linuxです)。
私の現在の解決策は次のとおりです。以下のすべてのパスを一覧表示します/usr/share/zoneinfo/posix
。通常のファイルまたはシンボリックリンクです。
cd /usr/share/zoneinfo/posix && find * -type f -or -type l | sort
ただし、既知のすべてのタイムゾーンがこのディレクトリの下のパスにマップされているかどうかはわかりません。
質問
システムの現在のzoneinfoデータベースにあるフルタイムゾーンのリストを提供できるコマンドはありますか?
答え1
Debian 9 でコマンドを実行すると、ここにリストされているすべてのタイムゾーンが表示されます。https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
また、コマンドと同じリストをsystemd
出力します。timedatectl list-timezones
私が知る限り、ここに含まれるデータはtzdata
IANAによって直接提供されます。
This package contains data required for the implementation of
standard local time for many representative locations around the
globe. It is updated periodically to reflect changes made by
political bodies to time zone boundaries, UTC offsets, and
daylight-saving rules.
したがって、tzdata
パッケージを最新の状態に保ちます。
答え2
未使用のシステムでリストを検索する場合は、実装から派生したスクリプトsystemd
は次のとおりです。awk
timedatectl list-timezones
awk '/^Z/ { print $2 }; /^L/ { print $3 }' /usr/share/zoneinfo/tzdata.zi
出力を にパイプするsort
とほぼ同じ結果が得られますtimedatectl list-timezones
。