$(TZ = MSZ + 24日期+“%d%m%Y”)在夏令时期间没有按预期工作?

时间:2016-03-28 07:10:59

标签: bash date unix timezone aix

我有一个脚本使用$(TZ=MSZ+24 date +"%d%m%Y")来获取BASH(AIX系统)中的昨天日期。到目前为止,它已经完美地工作了5个月,直到昨晚,当它没有正常工作。通常它在服务器时间凌晨01:00运行,但昨晚发生了一些奇怪的事情,唯一的原因就是$(TZ=MSZ+24 date +"%d%m%Y")

所以,我的问题是,如果星期六晚上时钟前进1小时,它会影响$(TZ=MSZ+24 date +"%d%m%Y")所以当它在星期天运行时会产生奇怪的结果吗?

谢谢

1 个答案:

答案 0 :(得分:0)

由于夏令时,24小时前可以是今天或前天。如果要在不使用GNU日期的情况下更改脚本,请使用以下技巧:

你确定昨天是20或30小时前。哪一个?好吧,最近的一个不是今天。

echo "$(TZ=MSZ+30 date +"%d%m%Y")
$(TZ=MSZ+20 date +"%d%m%Y")" | grep -v "$(date +"%d%m%Y")" | tail -1