禁用Linux中的夏令时(DST)更改

禁用Linux中的夏令时(DST)更改,第1张

概述几周前,(土耳其能源和自然资源部)宣布,DST将是永久性的,GMT 3将在该国永久使用. 目前,我们的Linux服务器的时区设置为Europe / Istanbul.但是还没有发布tzdata更新. 由于缺乏更新,时区将自动在2016年10月30日从GMT 3更改为GMT 2,如zoneinfo文件(/usr/share / zoneinfo / Europe / Istanbul)中所声明. 您 几周前,(土耳其能源和自然资源部)宣布,DST将是永久性的,GMT 3将在该国永久使用.

目前,我们的Linux服务器的时区设置为Europe / Istanbul.但是还没有发布tzdata更新.

由于缺乏更新,时区将自动在2016年10月30日从GMT 3更改为GMT 2,如zoneinfo文件(/usr/share / zoneinfo / Europe / Istanbul)中所声明.

您可以在下面看到2016年的详细信息:

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(在没有更新的情况下)为了防止这种情况变得危机,我们决定制定一个备份计划,将我们服务器的时区设置为固定的GMT 3;但是当我设定固定的GMT 3时,我们会遇到一种奇怪的行为.

在我们对时区进行任何更改之前,让我们看一下服务器上的本地时间和UTC时间.

# dateWed Sep 21 11:13:11 EEST 2016# date -uWed Sep 21 08:13:15 UTC 2016

我们将时区设置为固定GMT 3如下:

# rm -f /etc/localtime# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

让我们看看更改后服务器上的本地时间和UTC时间是多少. GMT 3时间比UTC早3小时,它应该比UTC晚3小时,如上面的输出所示.

# dateWed Sep 21 05:14:24 GMT+3 2016# date -uWed Sep 21 08:14:26 UTC 2016

即使我们重置本地时间或UTC时间,它也不会改变.

# date -s "21 Sep 2016 11:16:00"Wed Sep 21 11:16:00 GMT+3 2016# dateWed Sep 21 11:16:02 GMT+3 2016# date -uWed Sep 21 14:16:05 UTC 2016# date -u -s "21 Sep 2016 11:16:00"Wed Sep 21 11:16:00 UTC 2016# dateWed Sep 21 08:16:01 GMT+3 2016# date -uWed Sep 21 11:16:02 UTC 2016

为什么偏移似乎是倒退?

解决方法 更新#1:最近为其官方存储库下的多个 *** 作系统发布了时区数据库更新.版本tzdata2016g包含上述更改的设置.

在某些时候,这个问题是question asked on superuser.com的重复.

水晶般的答案是

“Zones like Etc/GMT+6 are intentionally reversed for backwards compatibility with POSIX standards”

但我相信它不应该被删除,以帮助那些想要在linux系统中禁用DST更改的人.

要禁用DST更改,请将/ etc / localtime文件链接到位于文件夹/usr/share / zoneinfo / Etc /下的zoneinfo文件之一

示例命令:

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

要选择最合适的zoneinfo文件,请反转目标GMT的符号.

即,对于设置GMT 3时区(比UTC早3小时),应使用/usr/share / zoneinfo / Etc / GMT-3

总结

以上是内存溢出为你收集整理的禁用Linux中的夏令时(DST)更改全部内容,希望文章能够帮你解决禁用Linux中的夏令时(DST)更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1044684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存