web-dev-qa-db-ja.com

JodatimeのDateTimeの日付タイムゾーンをUTCにデフォルト設定する

現在、現在のイディオムを使用してUTC DateTimeオブジェクトを作成しています

DateTime now = new DateTime(DateTimeZone.UTC);

デフォルトのコンストラクタを使用してUTCベースのDateTimeオブジェクトを作成できるようにデフォルトにする方法はありますか?

DateTime now = new DateTime();
54
algolicious

Joda時間のデフォルトのタイムゾーンのみを設定する場合は、 DateTimeZone.setDefault


whole jvmが使用するタイムゾーンを変更する場合は、 TimeZone.setDefault メソッド。 joda時間でキャッシュできるため、早めに設定してください。 DateTimeZone.getDefault から引用:

デフォルトのタイムゾーンは、システムプロパティuser.timezoneから派生します。それがnullまたは有効な識別子でない場合、JDK TimeZoneのデフォルトの値が変換されます。それが失敗した場合、UTCが使用されます。

70
dacwe

余分な文字が本当に心配な場合は、ヘルパーメソッドを作成します。

public static DateTime newUTCDateTime() {
  return new DateTime(DateTimeZone.UTC);
}
15
jtahlborn