По умолчанию часовой пояс даты в UTC для DateTime Jodatime - PullRequest
54 голосов
/ 22 февраля 2012

В настоящее время я создаю объекты UTC DateTime с использованием текущей идиомы

DateTime now = new DateTime(DateTimeZone.UTC);

Есть ли способ по умолчанию, чтобы я мог создавать объекты DateTime на основе UTC, используя конструктор по умолчанию, чтобы он был более неявным?

DateTime now = new DateTime();

Ответы [ 2 ]

70 голосов
/ 22 февраля 2012

Если вы хотите установить часовой пояс по умолчанию для времени йода, используйте DateTimeZone.setDefault.


Если вы хотите изменить часовой пояс, который используется whole jvm , используйте метод TimeZone.setDefault. Только убедитесь, что установили это рано, поскольку это может быть кэшировано ко времени joda.

Часовой пояс по умолчанию получен из системного свойства user.timezone. Если это значение равно нулю или не является допустимым идентификатором, то значение JDK TimeZone по умолчанию преобразуется. Если это не удается, используется UTC.

15 голосов
/ 22 февраля 2012

Если вас действительно беспокоят дополнительные символы, просто создайте вспомогательный метод:

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