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

我有一个在 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/

相关文章:

python - 如何用下划线替换空格?

python - Python中的事件系统

linux - 如何强制 CIFS 连接卸载

linux - 如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?

linux - 如何在没有密码的情况下以另一个用户身份运行脚本?

python - 如何为 popen 指定工作目录

linux - 递归删除文件

python - matplotlib 错误 - 没有名为 tkinter 的模块

linux - 在 Ubuntu 中轻松更改 $JAVA_HOME

linux - 如何在 linux 中显示来自 bash 脚本的 GUI 消息框?