我的脚本中的日期命令有一个有趣的问题。我的脚本在给定的日期范围内生成大量小时数据。我使用date函数将“日期”从“日期”增加一小时,直到它点击“日期”。date方法工作得很好,并且像我预期的那样将"from“日期增加了一个小时。但是,一旦到了2017/11/05 :00:00,它就停止了。我还没有测试过很多次约会,但另一个有同样问题的日期是2016/11/06 :00:00。
$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T"
2017/11/05 01:00:00
$ date -d "2016/11/06 01:00:00 1 hour" +"%Y/%m/%d %T"
2016/11/06 01:00:00Linux版本Linux3.10.0-229.4.2.el7.x86_64
发布于 2018-10-11 18:15:15
结果,是DST (夏令时)导致了这个问题。当我将DST日期为凌晨1时(11月的第一个星期日)传递给date命令时,它可能会在内部将日期增加一个小时,并从其中扣除DST的一个小时。解决方案是使用@jkan5855建议的-u (UTC)。
$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T" -u发布于 2018-10-11 15:02:12
试着做date --version,看看你用的是哪个版本的约会。date (GNU Coreutils) 8.30上的命令运行良好
重新安装或更新GNU Coreutils (为您的linux/子系统找到合适的包),因为显然没有其他人会遇到这个问题。你的命令为我打印出了2017/11/05 02:00:00。
如果这不能解决这个问题,你的电脑会暂时失效吗?我没有更好的方法来描述它,但是尝试重新启动您的计算机,因为您也在其他子系统/终端上获得了这个信息。
https://unix.stackexchange.com/questions/474855
复制相似问题