更好,更快,更健壮的Android时区更新方式
又到了一年一度我们要调整时钟的时候了!哦,等等,你的安卓设备是不是已经自动调整了?对于许多生活在各国的安卓用户来说,这可能并不奇怪。例如,在美国、欧盟和英国,政府已经有一段时间没有改变他们的时间立法,因此用户每天早上醒来都能看到准确的时间。
但是,当时间法律发生变化会发生什么呢?如果全球范围内看,政府可以并且确实经常改变他们的时间立法,有时甚至每年都会变化,而安卓设备必须跟上以支持我们的全球用户群。
为了执行某一地区的时间立法,安卓设备必须遵循一套编码规则。那么,这些规则是什么呢?让我们从为何需要这些规则开始说起。显然,洛杉矶的早上7点和伦敦的早上7点并不是同一时间。此外,如果你在伦敦想知道洛杉矶的时间,你就必须知道要减去多少小时,而这在一年之中是不固定的。因此,为了告诉当地时间(你的手表应该显示的时间),很方便有一个全球所有人都能同意的参考时钟。这个时钟被称为协调世界时(UTC)。伦敦冬季的当地时间与UTC相符,夏季则要在UTC基础上加一小时,通常称为UTC+1。对于洛杉矶,夏季当地时间是UTC-8(比UTC晚8小时,UTC偏移为-8小时),冬季则相应地是UTC-7。当一个地区从一个偏移量改变到另一个偏移量时,我们称之为“转换”。这些偏移量和规则的组合以及转换发生的时间(例如“三月的最后一个星期日”或“