我有一个在 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 小时,而 2013-03-11 0:35 CDT
之前的 24 小时是 2013 -03-09 23:35 CST
,导致结果为 "2013-03-09"
。
那么,在 Linux 上以 bash 格式获取昨天日期的 DST 安全的好方法是什么?
最佳答案
我认为这应该可以工作,无论您运行它的频率和时间如何......
date -d "yesterday 13:00" '+%Y-%m-%d'
https://stackoverflow.com/questions/15374752/