我正在使用一个应用程序,该应用程序每隔几秒钟就会从位置对象创建一个新的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";。由于格式更改,这种格式更改导致应用程序中更深层次的各种与解析相关的异常。
问题:
- 为什么切换时区后格式会发生变化
- 有没有办法确保只使用一种格式
谢谢!
问题是"GMT-03:00";不是加法,是对";MDT";(山地日期时间(。在您共享的两个输出中都指定了时区。
您可以使用Andreas的回答中解释的JodaTime库来避免时区,或者使用SimpleDateFormat作为此处回复的输入链接描述。