2012-09-12 358 views
1

如果任何人都可以提供帮助,我在Linux中的date命令有一个小问题,我用它来及时跳转以触发我们的结算过程,以便我们可以快速测试。测试夏令时更改

我的问题是,当我运行

date --set="OCT 27 01:00:59 BST 2012 2 day" 

归期我得到的是周一10月29日北京时间00:00:59 2012这是正确的,因为它需要在交代当日光节约。

但是当我运行

date --set="MAR 30 00:00:59 GMT 2013 3 day" 

我得到的4月2日00:00:59 BST 2013,因为我想这是错误的是4月2日1点00分59秒BST 2013

为什么它是以一种方式工作而不是另一种方式,那么处理这种情况的最佳方式是什么?

感谢

+0

根据[this](http://wwp.greenwichmeantime.com/time-zone/europe/uk/time/british-summer-time/),你的第二个命令实际上并没有跨越节省时间的变化BST(它发生在3月25日),所以我不确定为什么你会期望额外的小时轮班 –

+1

这是夏令时的单数。这不是夏令时和贷款,你知道。 – tchrist

+0

@DanielDiPaolo根据您提供的网站,时钟在2013年3月31日再次发生了变化。所以对我来说仍然是一个问题。 – Clayton

回答

1

据:http://ascending.wordpress.com/2008/04/03/how-linux-handles-summer-time/ 使用

zdump -v Europe/Chisinau 

您所在地区时看到你的系统中添加/删除一个额外的DST小时

但实际上,你请求的日期BST(英国夏令时)在DST切换后一天,另一种情况下,您在格林威治标准时间2天内要求格林威治标准时间到达DST开关,但GMT没有夏令时偏移。