首页 文章

Linux如何处理DST(夏令时?

提问于
浏览
0

How does linux handle daylight saving time (DST)

Does the swich happen instantly, like 3'o clock swiched instantly to 2'o clock ? or it changes slowly 我问你这个因为我的服务器上有很大的日期基础,如果这个swich发生在数据库的入口上一小时就会被写入

我怎么解决这个问题 ?

4 回答

  • 0

    它立即改变:

    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
    

    这是在测试机器上完成的,并立即切换 .

  • 0

    我问你这个因为我的服务器上有大量的日期基础,如果这个swich在数据库中的一个小时内就会立即发生

    这表明你正在将当地时间写入数据库 . 无论Linux如何处理它(我相信它会像你说的那样,基本上就是时区的工作原理),你几乎肯定不应该把本地时间写入你的数据库 .

    如果你改为写入UTC时间,那么你就不会发现奇怪的情况,即在事件Y之后发生的事件X实际上是用较早的时间记录的,也不会有任何含糊之处 . 您可以根据需要在显示数据时将存储的时间调整到当地时区 - 您可以在任何时区进行调整 .

  • 4

    通常,建议使用没有DST的协调世界时(UTC)存储时间数据 .

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

    至于你目前的问题,我不知道如何处理它 . 由于我总是处理UTC数据,所以它不会出现 .

  • 2

    我想你可能会尝试:

    为您添加触发器,将DST敏感数据转换为基于UTC时间 .

相关问题