我有一个在 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"实施方式减去了 24 小时,而 24 小时前2013-03-11 0:35 CDT是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'