时区转换的计算方式

timezone的计算为何要在db中逐条写呢? 用算法是可以的吧,自动根据地区来计算,而不是依赖于db中的基础数据。

遇到一个bug,客户的实时时钟因为某种异常跳到了2037年,在此期间,有一些时间数据存入了db造成了垃圾数据。当前端通过timezone转换来获取时间时报错。后来发现db中对于timezone的计算有基础表,只推算到了2036年,2036年以后的时间并没有对应的timezone的基础数据。

问题就是为何要给timezone的计算用基础数据表来维护?外国的国家很多采用夏令时和冬令时,不同地区可能采用不同的时区。

不过完全可以通过算法来计算,而不用db中每条记录来写明一年的哪个时间段是夏令时,哪个是冬令时。

原文地址:https://www.cnblogs.com/maoya/p/8178442.html