我正在尝试设置本地对象的日期时间。这是我的代码:
val date = DateTime() //returns UTC time
val dateTimeZone = DateTimeZone.getDefault() //returns UTC
val localDateTime = LocalDateTime() //returns UTC
我的手机设置设置为自动日期时间,我当前的时区是山区时间。
如何获取我所在时区的当前时间(手机上出现的时间)?
答案 0 :(得分:0)
如果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的默认时区,因此在这样做之前,请考虑这是否是您需要的。