New Date()对象在切换时区时更改格式



我正在使用一个应用程序,该应用程序每隔几秒钟就会从位置对象创建一个新的Date()对象:

val logDate = Date(location.time).toString()
Log.d("test", "$logDate")

每隔几秒钟,日期就会被记录到控制台:

D/test:7月22日星期三12:02:14 MDT 2020

D/test:7月22日星期三12:02:19 MDT 2020

如果我进入日期&我的设备上的时间设置,并手动将时区更改为布宜诺斯艾利斯,以下内容将开始打印:

D/test:7月22日星期三15:02:24 GMT-03:00 2020

D/test:7月22日星期三15:02:35 GMT-03:00 2020

注意添加了";GMT-03:00";。由于格式更改,这种格式更改导致应用程序中更深层次的各种与解析相关的异常。

问题:

  1. 为什么切换时区后格式会发生变化
  2. 有没有办法确保只使用一种格式

谢谢!

问题是"GMT-03:00";不是加法,是对";MDT";(山地日期时间(。在您共享的两个输出中都指定了时区。

您可以使用Andreas的回答中解释的JodaTime库来避免时区,或者使用SimpleDateFormat作为此处回复的输入链接描述。

最新更新