返回UTC时间的LocalDateTime和DateTimeZone.getDefault
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回UTC时间的LocalDateTime和DateTimeZone.getDefault相关的知识,希望对你有一定的参考价值。
我正在尝试设置本地对象的日期时间。这是我的代码:
val date = DateTime() //returns UTC time
val dateTimeZone = DateTimeZone.getDefault() //returns UTC
val localDateTime = LocalDateTime() //returns UTC
我的手机设置设置为自动日期时间,我当前的时区是山区时间。
如何获得我所在时区的当前时间(手机上出现的时间)?
答案
如果DateTimeZone.getDefault()
返回“UTC”,那是因为设备的默认时区设置为它,因此除非您指定另一个区域,否则所有类都将引用它。
要获取特定时区的日期和时间,您可以执行以下操作:
val date = DateTime(DateTimeZone.forID("America/Denver"))
val localDateTime = LocalDateTime(DateTimeZone.forID("America/Denver"))
请注意,America / Denver只是one of the many regions that uses Mountain Time。这是因为Joda-Time使用IANA区域名称(格式为区域/城市),因此您必须从此列表中选择相应的最佳名称:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
或者,您也可以更改默认时区:
DateTimeZone.setDefault(DateTimeZone.forID("America/Denver"))
有了这个,只需调用LocalDateTime()
或DateTime()
将使用America / Denver作为默认区域。
但请注意,这将改变整个JVM的默认时区,因此在这样做之前,请考虑这是否是您需要的。
以上是关于返回UTC时间的LocalDateTime和DateTimeZone.getDefault的主要内容,如果未能解决你的问题,请参考以下文章
Mysql将LocalDateTime插入到数据库时时间少了8小时。
Mysql将LocalDateTime插入到数据库时时间少了8小时。