new Date (cursor.getLong(4))
接下来显示我使用toString()方法将Date对象转换为String。但是,有时显示的字符串包含CET,有时包含CEST。
确定添加时区信息的事实并不令人惊讶。令人惊讶的是,在同一设备上,值同时从数据库获取,因此长值因此不包含任何区域时间信息,java有时会添加CET,有时会添加CEST。为什么会有这样的差异?
唯一的区别是结果CEST中给出的long值的时间等于00:00:00,而结果CET中给出的值的时间不同。
有什么想法吗?
答案 0 :(得分:2)
值本身完全与时区无关,但您的设备却不是。您的设备有两个时区,CET和CEST,作为其语言环境的一部分。在CEST中给出夏令时/ /将/活动期间的日期,其他日期报告为CET。
如果您将设备设置为不遵守夏令时的区域设置,则只会报告该时区。
要知道为什么这是有道理的,请考虑一下你问我现在几点了,我说“13:35 CEST”。因为CEST是UTC + 2,我是对的,但你可能会感到困惑。因为在一年的这个时候没有使用CEST,所以在CET中给出时间是有意义的。这就是时区根据日期而变化的原因。