【发布时间】:2012-03-12 22:52:34
【问题描述】:
我目前正在使用当前惯用语创建 UTC DateTime 对象
DateTime now = new DateTime(DateTimeZone.UTC);
有什么方法可以默认,所以我可以使用默认构造函数创建基于 UTC 的 DateTime 对象,这样它就更隐含了?
DateTime now = new DateTime();
【问题讨论】:
我目前正在使用当前惯用语创建 UTC DateTime 对象
DateTime now = new DateTime(DateTimeZone.UTC);
有什么方法可以默认,所以我可以使用默认构造函数创建基于 UTC 的 DateTime 对象,这样它就更隐含了?
DateTime now = new DateTime();
【问题讨论】:
如果您只想为 joda 时间设置默认时区,请使用 DateTimeZone.setDefault。
如果您想更改 整个 jvm 使用的时区,请使用 TimeZone.setDefault 方法。请务必尽早设置它,因为它可以被 joda time 缓存。引用自DateTimeZone.getDefault:
默认时区派生自系统属性 user.timezone。如果它为 null 或不是有效标识符,则转换 JDK TimeZone 默认值。如果失败,则使用 UTC。
【讨论】:
DateTimeZone.setDefault)。
TimeZone.setDefault 影响在同一 JVM 中运行的每个应用程序的每个线程。调用此方法可能会在其他类中产生各种混乱和意外行为。
DateTimeZone.setDefault。简化事情以使服务器的行为就像它在 UTC 中一样。 MongoDB 最好让这些变得简单一些。
如果您真的担心多余的字符,那么只需创建一个辅助方法:
public static DateTime newUTCDateTime() {
return new DateTime(DateTimeZone.UTC);
}
【讨论】: