我有一个在Linux上运行的shell脚本,并使用此调用以以下YYYY-MM-DD格式获取昨天的日期:
YYYY-MM-DD
date -d "1 day ago" '+%Y-%m-%d'
它在大多数情况下都有效,但是当脚本在昨天早晨运行时2013-03-11 0:35 CDT返回"2013-03-09"而不是"2013-03-10"。
2013-03-11 0:35 CDT
"2013-03-09"
"2013-03-10"
大概归咎于夏令时(从昨天开始)。我猜"1 day ago"它的实现方式减去了2013-03-11 0:35 CDTwas的24小时和24小时2013-03-09 23:35 CST,这导致的结果"2013-03-09"。
"1 day ago"
2013-03-09 23:35 CST
那么,在Linux上bash中获取昨天日期的一种DST安全的好方法是什么?
我认为这应该有效,无论您运行它的频率和时间…
date -d "yesterday 13:00" '+%Y-%m-%d'