我有一个正在按预期运行的应用程序。应用程序的许多部分显示日期时间。我正在使用 jodatime 库。
向应用程序添加功能后,默认时区更改为 UTC。
我想知道为什么会发生这种情况,因为我没有明确设置时区,我正在用
DateTime
或 DateTime.now()
初始化 DateTime(millis)
。我知道我应该明确设置时区,但是 jodatime 的默认时区更改的原因可能是什么?
请勿在
DateTime.now()
之前致电application::onCreate
。这将导致 null
默认 TimeZone
。如果您以某种方式在应用程序类中初始化 DateTime 变量,如下所示:
private var dateTime: DateTime = DateTime.now()
将其调用延迟到
application::onCreate
之后或内部,如下所示:
private lateinit var dateTime: DateTime
override fun onCreate() {
super.onCreate()
dateTime = DateTime.now()
}