小编典典

在 Linux 上的 bash 中获取昨天的日期,DST 安全

all

我有一个在 Linux 上运行的 shell 脚本,并使用此调用以YYYY-MM-DD格式获取昨天的日期:

date -d "1 day ago" '+%Y-%m-%d'

它在大多数情况下都有效,但是当脚本在昨天早上运行时2013-03-11 0:35 CDT它返回"2013-03-09"而不是"2013-03-10".

据推测,夏令时(昨天开始)是罪魁祸首。我猜它的"1 day ago"实施方式减去了 24 小时,而 24 小时前2013-03-11 0:35 CDT2013-03-09 23:35 CST,这导致了"2013-03-09".

那么在 Linux 上以 bash 格式获取昨天日期的 DST 安全的好方法是什么?


阅读 121

收藏
2022-07-09

共1个答案

小编典典

我认为这应该有效,无论您运行它的频率和时间如何......

date -d "yesterday 13:00" '+%Y-%m-%d'
2022-07-09