特定の日付のタイム ゾーンを保存する場合、タイム ゾーンの ID 文字列 ( Joda などDateTimeZone.getId()
) を永続化することと、UTC からのローカル タイム オフセット ( Joda など ) を保存することの利点はありDateTimeZone.getOffset()
ますか?
Joda の DateTimeZone と JDK の TimeZone は ID 文字列を共有しているように見えますが、オフセットを保存すると言語に依存しなくなるようです。
答えは、ユースケースによって異なります。オフセットは言語に依存しませんが、ユーザーが選択できるようにIDに解釈し直す必要がある場合があります。ほとんどのユーザーは、オフセットが何であるかを知りません。一方、ユーザーがオフセットを知っていることが合理的に期待できる場合は、解釈する必要はありません。これは設計上の決定であり、ベストプラクティスの問題です。
オフセットのみで保存すると、夏時間などについてはわかりません。ドキュメントの例:「このシステムを使用すると、America / Los_AngelesはUTC-08:00、または夏時間のUTC-07:00として表されます」