java Date to String - 有时CET有时是CEST

时间:2013-10-30 23:12:40

标签: java android sqlite date

奇怪的是。我有SQLite Android数据库,日期保持为长值。我把它们作为日期对象来阅读:

new Date (cursor.getLong(4))

接下来显示我使用toString()方法将Date对象转换为String。但是,有时显示的字符串包含CET,有时包含CEST。

确定添加时区信息的事实并不令人惊讶。令人惊讶的是,在同一设备上,值同时从数据库获取,因此长值因此不包含任何区域时间信息,java有时会添加CET,有时会添加CEST。为什么会有这样的差异?

唯一的区别是结果CEST中给出的long值的时间等于00:00:00,而结果CET中给出的值的时间不同。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

值本身完全与时区无关,但您的设备却不是。您的设备有两个时区,CET和CEST,作为其语言环境的一部分。在CEST中给出夏令时/ /将/活动期间的日期,其他日期报告为CET。

如果您将设备设置为不遵守夏令时的区域设置,则只会报告该时区。

要知道为什么这是有道理的,请考虑一下你问我现在几点了,我说“13:35 CEST”。因为CEST是UTC + 2,我是对的,但你可能会感到困惑。因为在一年的这个时候没有使用CEST,所以在CET中给出时间是有意义的。这就是时区根据日期而变化的原因。