从Epoch on Linux,Bash开始,立即获得当前时间

我需要一些简单的date ,但在1970年以后,而不是当前的日期,小时,分钟和秒。

date似乎不提供该选项。 有没有简单的方法?


这应该工作:

date +%s

只需添加。

在任何给定的日期(例如1973年10月21日)获得自1970年1月1日以来的秒数。

date -d "Oct 21 1973" +%s


将秒数转换回日期

date --date @120024000


命令date非常灵活。 另一个很酷的事情,你可以做日期(无耻复制date --help )。 显示美国西海岸下周五上午9点的当地时间

date --date='TZ="America/Los_Angeles" 09:00 next Fri'

更好的是,花些时间阅读手册页http://www.manpages.info/linux/date.1.html


到目前为止,所有的答案都使用外部程序date

自Bash 4.2以来, printf有一个新的修饰符%(dateformat)T ,当与参数-1一起使用时,输出当前日期格式由dateformat给出,由strftime(3)处理( man 3 strftime有关格式信息)。

所以,对于纯粹的Bash解决方案:

printf '%(%s)Tn' -1

或者如果您需要将结果存储在变量var

printf -v var '%(%s)T' -1

没有外部程序,也没有子壳!

自Bash 4.3以来,甚至有可能不指定-1

printf -v var '%(%s)T'

(但总是给出参数-1可能更明智)。

如果使用-2作为参数而不是-1 ,Bash将使用shell启动的时间而不是当前日期(但为什么要这样?)。

链接地址: http://www.djcxy.com/p/18529.html

上一篇: Get current time in seconds since the Epoch on Linux, Bash

下一篇: Changed behaviour of java.sql.Date after OJBC client upgrade