我有一个在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"的实现方式是减go 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'

Linux相关问答推荐

无法下载Centos 7上的存储库的元数据

为什么硬编码的阿拉伯字母与Unicode代码点不具有相同的值

如何将数据从Linux内核中的块驱动程序持久存储到存储中?

UTF-8输入和使用XGetICValues

在 cURL 中使用的确切位置将字节分成一些范围部分

如何在不进行轮询且不吃掉其他人子进程的退出代码的情况下等待一组子进程(并且只有它们)?

awk内部的变量操作

如何拆分多个分隔符但将它们保留在方括号之间?

Linux上Kvaser数据库编辑器的等效工具

使用带有 gnome-keyring 的 Git 凭证助手作为 Sudo 时出错

如何仅使用 SED 获得第二行

我想为 Linux 内核做贡献

在 VIM 中搜索和替换导致尾随字符

如何知道是否有足够的内存可以在 Linux 机器上部署新应用程序?

如何在 Linux 上取消关机?

比较两个图像的 python/linux 方式

如何在 linux 或 unix 上找到用户的主目录?

如何使用cp从不同目录复制多个文件?

为嵌入式 Linux 设备实施更新/升级系统

如何在 docker 容器中运行 cron 作业(job)