Linux如何处理DST(夏令时?

Linux如何处理夏令时(DST)

swich是否立即发生,就像3'o时钟立刻转到2'o时钟一样? 或者它变化缓慢我问你,因为我有我的服务器上的大型日期库,如果这种情况立即发生一小时在数据库中的入口将被写入

我怎么解决这个问题 ?


它立即改变:

Sun 26 Oct 03:59:56 EEST 2014
Sun 26 Oct 03:59:57 EEST 2014
Sun 26 Oct 03:59:58 EEST 2014
Sun 26 Oct 03:59:59 EEST 2014
Sun 26 Oct 03:00:00 EET 2014
Sun 26 Oct 03:00:01 EET 2014
Sun 26 Oct 03:00:02 EET 2014
Sun 26 Oct 03:00:03 EET 2014
Sun 26 Oct 03:00:04 EET 2014
Sun 26 Oct 03:00:05 EET 2014
Sun 26 Oct 03:00:06 EET 2014
Sun 26 Oct 03:00:07 EET 2014
Sun 26 Oct 03:00:08 EET 2014

这是在一台测试机上完成的,它立即切换。


我问你这一点,因为我在我的服务器上有很大的日期基础,如果这个开关瞬间发生,数据库中的入门人员将立即执行一小时

这表明你正在将当地时间写入数据库。 不管Linux如何处理它(我相信它会像你说的那样做,因为基本上这就是时区的工作方式),所以几乎肯定不应该把当地时间写入数据库。

如果您编写UTC时间,那么您无需关心系统设置为哪个时区或DST效果。 在事件Y之后发生的事件X实际记录时间较早的情况下,您不会遇到奇怪的情况,也不会有任何含糊之处。 如果您希望提供数据,您可以将存储的时间调整到当地时区,并且您可以在任何时间区域进行此操作。


一般来说,建议使用协调世界时(UTC)存储时间数据,该时间不包含DST。

进出数据库时,从本地时区(和其他区域设置问题)进行转换。 否则,您必须将数据库中所有时间的时区(显式或隐式)存储。 首先处理转换看起来很烦人,但是当你开始与不同时区的用户打交道时,无论如何你必须这样做。 所以从长远来看,拥有标准化的DST时间是非常方便的。

至于你目前的问题,我不是如何处理它。 由于我一直处理UTC数据,所以不会出现。

链接地址: http://www.djcxy.com/p/29405.html

上一篇: How does Linux handle DST (daylight saving time?

下一篇: PHP Daylight savings conundrum