Asia/Singapore
<<のようなタイムゾーンを比較する必要がありUTC
ますPacific/Honolulu
。
私はjava.util.TimeZone
(を実装していませんComparable
)で作業しています。
異なるタイム ゾーンの日付を比較することに関して圧倒的な数の質問があったため、既存の実装を検索することはできませんでした。
質問:この問題を解決する正しい実装は何ですかComparator<TimeZone>
(また、該当する場合、他のソリューションより優れている点は何ですか?
この問題にはJoda Timeを使用できないため、「Joda Time を使用する」は有効な回答ではありません。
明確にするために編集する
上記の<
表記は明確に定義されていませんでした。私の特定のユースケースでは、東から西への単純な「地理的」順序付けのみが必要です。コメントが指摘しているように、より高度で一般化可能なソリューションでは、夏時間や過去の GMT オフセットの変更などの一時的な要因が考慮されます。したがって、考えられる順序は 2 つあります。それぞれに異なるComparator<TimeZone>
実装が必要です。
- 厳密に地理的 (現在の UTC) -私の回答で対処します。
- 地方時または常用時の変更に敏感 - rgettman's answerによって対処されます。