为什么Linux系统时间每6个月增加和减少一小时?

时间:2019-06-27 09:10:04

标签: linux system gnu

计算连续两天之间的秒数时,应为86400秒(24 * 60 * 60)。
但是一年两次不是这样...
一次是一天23小时,六个月后一天25小时。
为什么会这样?

我运行了一个代码来检查从2005年到2019年的2天之间的秒数 整整一年有24小时,只有2天分别是23和25。 为什么会这样? 这是我的结果总结- 差异栏是当天与前一天之间的秒数,为86400秒

+------------+------------+-------------------+
|   dates    | difference | number_of_seconds |
+------------+------------+-------------------+
| 2005-04-02 |       3600 |             82800 |
| 2005-10-10 |      -3600 |             90000 |
| 2006-04-01 |       3600 |             82800 |
| 2006-10-02 |      -3600 |             90000 |
| 2007-03-31 |       3600 |             82800 |
| 2007-09-17 |      -3600 |             90000 |
| 2008-03-29 |       3600 |             82800 |
| 2008-10-06 |      -3600 |             90000 |
| 2009-03-28 |       3600 |             82800 |
| 2009-09-28 |      -3600 |             90000 |
| 2010-03-27 |       3600 |             82800 |
| 2010-09-13 |      -3600 |             90000 |
| 2011-04-02 |       3600 |             82800 |
| 2011-10-03 |      -3600 |             90000 |
| 2012-03-31 |       3600 |             82800 |
| 2012-09-24 |      -3600 |             90000 |
| 2013-03-30 |       3600 |             82800 |
| 2013-10-28 |      -3600 |             90000 |
| 2014-03-29 |       3600 |             82800 |
| 2014-10-27 |      -3600 |             90000 |
| 2015-03-28 |       3600 |             82800 |
| 2015-10-26 |      -3600 |             90000 |
| 2016-03-26 |       3600 |             82800 |
| 2016-10-31 |      -3600 |             90000 |
| 2017-03-25 |       3600 |             82800 |
| 2017-10-30 |      -3600 |             90000 |
| 2018-03-24 |       3600 |             82800 |
| 2018-10-29 |      -3600 |             90000 |
+------------+------------+-------------------+

以下是我在完整代码中运行的代码示例-

echo $((($(date +%s --date 2006-03-31)-$(date +%s --date 2006-03-30))))
echo $((($(date +%s --date 2006-04-01)-$(date +%s --date 2006-03-31))))
echo $((($(date +%s --date 2006-04-02)-$(date +%s --date 2006-04-01))))

1 个答案:

答案 0 :(得分:4)

具有%s格式的date命令为您提供了从纪元开始的挂钟时间(以秒为单位),并且您所在的位置具有夏令时。因此,当您在夏季和夏季之间往返时,您会增加或减少一个小时。