我目前正在使用当前的惯用语来创建UTC日期时间对象。
DateTime now = new DateTime(DateTimeZone.UTC);
有没有一种方式可以设置默认值,使得我可以使用默认构造函数创建基于UTC的DateTime对象,以便更加隐式?
DateTime now = new DateTime();
如果你只想设置joda time的默认时区,请使用DateTimeZone.setDefault
方法。
如果你想改变整个jvm使用的时区,请使用TimeZone.setDefault
方法。请确保尽早设置它,因为它可以被joda time缓存。引用自DateTimeZone.getDefault:
默认时区派生自系统属性user.timezone。如果该属性为null或不是有效标识符,则转换JDK TimeZone默认值。如果失败,则使用UTC。
如果您真的担心多余的字符,那么只需创建一个帮助方法:
public static DateTime newUTCDateTime() {
return new DateTime(DateTimeZone.UTC);
}
DateTimeZone.setDefault
)设置时区。 - dacweTimeZone.setDefault
会影响同一JVM中所有应用程序的每个线程。调用此方法可能会在其他类中创建各种混乱和意外行为。 - Basil BourqueDateTimeZone.setDefault
。将服务器设置为UTC时区可以简化操作。MongoDB最好能够使这些操作更加简单。 - akauppi