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
4 回答
它立即改变:
这是在测试机器上完成的,并立即切换 .
这表明你正在将当地时间写入数据库 . 无论Linux如何处理它(我相信它会像你说的那样,基本上就是时区的工作原理),你几乎肯定不应该把本地时间写入你的数据库 .
如果你改为写入UTC时间,那么你就不会发现奇怪的情况,即在事件Y之后发生的事件X实际上是用较早的时间记录的,也不会有任何含糊之处 . 您可以根据需要在显示数据时将存储的时间调整到当地时区 - 您可以在任何时区进行调整 .
通常,建议使用没有DST的协调世界时(UTC)存储时间数据 .
进出数据库时从本地时区(以及其他区域设置问题)转换 . 否则,您必须在数据库中(显式或隐式)存储时区 . 处理转换似乎一开始很烦人,但是当你开始与不同时区的用户打交道时,你无论如何都必须这样做 . 因此,从长远来看,拥有标准化的DST时间非常方便 .
至于你目前的问题,我不知道如何处理它 . 由于我总是处理UTC数据,所以它不会出现 .
我想你可能会尝试:
为您添加触发器,将DST敏感数据转换为基于UTC时间 .