如何在Unix shell脚本中获取当前日期值的epoch值,即自1970年1月1日以来经过的天数。
如何在Unix shell脚本中获取当前日期值的epoch值,即自1970年1月1日以来经过的天数。
Unix的date命令会以epoch时间显示,
命令为:
date +"%s"
https://linux.die.net/man/1/date
编辑:一些人注意到您想要获取天数,因此这个命令的结果被86,400除以。
%s
是一个扩展功能。POSIX日期没有 %s
。请查看 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/date.html 了解详情。 - Jensexpr $(date +"%s") \* 1000
。 - duozmo更新: 先前发布在这里的答案链接到了一个自定义脚本,现在已不再可用,只是因为OP指出 date +'%s'
对他无效。请查看UberAlex的答案和cadrian的答案以获取正确的解决方案。简而言之:
要获取自Unix纪元以来的秒数,请使用date(1)
命令,如下所示:
date +'%s'
对于自 Unix 纪元以来的天数,将结果除以一天中的秒数(注意双括号!):echo $(($(date +%s) / 60 / 60 / 24))
echo $(($(date +%s) / 60 / 60 / 24))
%s
是一个扩展功能。POSIX日期没有 %s
。有关详细信息,请参见 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/date.html。 - Jensecho `date +%s`/86400 | bc
根据您使用的编程语言,这可能只是一些简单的东西。
CInt(CDate("1970-1-1") - CDate(Today()))
有趣的是,如果你像许多计算机系统一样使用1/1/1900作为“零日”,那么昨天就是第40,000天。