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


12

几周前,(由土耳其能源和自然资源部宣布)DST将是永久性的,GMT + 3将在该国永久使用。

目前,我们Linux服务器的时区设置为Europe / Istanbul。但是尚未发布tzdata更新。

由于缺少更新,因此时区将按照zoneinfo文件(/ usr / share / zoneinfo / Europe / Istanbul)中的声明在2016年10月30日自动从GMT + 3更改为GMT + 2。

您可以在下面查看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时间是什么。

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed 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时间为3小时更早比UTC它应该是3小时比UTC,如在上面的输出看出。

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed 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
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

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

为什么偏移量似乎是向后的?

Answers:


12

更新#1:时区数据库更新最近在其官方系统信息库中针对多个操作系统发布。该版本tzdata2016g包括上述更改的设置。

在某个时候,这个问题是在superuser.com上询问问题的重复项。

明确的答案是

“故意将Etc / GMT + 6等区域反转,以向后兼容POSIX标准”

但是我认为不应删除它,以帮助想要在Linux系统中禁用DST更改的人。

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

示例命令:

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

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

例如,要设置GMT + 3时区(比UTC提前3小时),应使用/ usr / share / zoneinfo / Etc / GMT-3


向我+1,但实际上,这表明您需要了解有关POSIX的所有信息,以及为什么几乎每个人都讨厌它。
MadHatter

2

在某些时候,将发布TZ表的新修订,并可用于所有Linux发行版的更新。嗯....我可能已经宣布在解决此问题后不久便提供了更新的时区表。也许您的情况可能会有一个新的TZ标志。


1
同意你。如果更新则没有问题。我们只是在谈论备份计划。
vaha 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.