タイムゾーン値を定義するより簡単な方法があります。オルソンデータベース。
しました19年間サポート(Paul Eggert)Solaris、HP-UX、およびTru64。
最初のリンクからわかるように、AIXは確実にこれをサポートしています。そしてすべてのBSD。
しかし、POSIXでは言及されていません。
とても簡単です:
TZ=America/New_York
DSTの変更に影響されないので、より良いです。また、年ごとの夏時間の変更も考慮してください。
$ TZ="America/New_York" faketime "Sun Mar 10 03:00:00 2012" date &&
> TZ="America/New_York" faketime "Sun Mar 10 03:00:00 2013" date
Sat 10 Mar 2012 03:00:00 AM EST
Sun 10 Mar 2013 03:00:00 AM EDT
関連:
答え1
私が知る限り、公開されたバグはありません。オースティングループのバグトラッカー引用するタイムゾーンデータベース、メーリングリストで議論されておらず、議事録にも表示されません。
POSIXは2019年に改善され、0〜24の範囲を超える時間についてOlsonデータベースに機能が含まれています。エラー1252もっと学ぶ。
TZ=:...
厳密に言えば、Olsonエントリは以下を使用して要求する必要があることを理解しています。TZ
コロンで始まる値実装定義で指定。
答え2
カンファレンスコールでこれについてより長い議論があったことを覚えています。
olson データベースを含める必要があるかどうかを議論しました。データベースの複雑さのため、仕様のコピーを含むプロトコルまたは仕様を参照するプロトコルが見つかりません。
したがって、olsonベースのメソッドはまだ許容範囲外の拡張です。