75

如何获取纪元中的当前日期值,即自 1970-1-1 以来经过的天数。我需要 unix shell 脚本中的解决方案。

4

5 回答 5

152

Unix Date 命令将以纪元时间显示

命令是

date +"%s"

https://linux.die.net/man/1/date

编辑:有些人观察到你问了几天,所以这是该命令除以 86,400 的结果

于 2009-07-07T19:36:12.207 回答
55

更新:之前发布的答案链接到不再可用的自定义脚本,仅仅是因为 OP 表示这date +'%s'对他不起作用。请参阅UberAlex 的答案cadrian 的答案以获得正确的解决方案。简而言之:

  1. 对于自 Unix 纪元以来的秒数date(1),使用如下:

    date +'%s'
    
  2. 对于自 Unix 纪元以来的数,将结果除以一天中的秒数(注意双括号!):

    echo $(($(date +%s) / 60 / 60 / 24))
    
于 2009-07-07T19:35:48.337 回答
11
echo $(($(date +%s) / 60 / 60 / 24))
于 2009-07-07T19:30:32.530 回答
2
echo `date +%s`/86400 | bc
于 2009-07-07T19:36:46.993 回答
-3

根据您使用的语言,它会很简单,例如

CInt(CDate("1970-1-1") - CDate(Today()))

具有讽刺意味的是,如果您像许多计算机系统一样使用 1/1/1900 作为“第 0 天”,那么昨天是第 40,000 天。

于 2009-07-07T19:27:46.137 回答