以来,如何在几秒钟内获得当前时间,在Linux上进行bash?

问题描述 投票:0回答:6
我需要简单的东西,例如

date

,但是自1970年以来而不是当前日期,小时,分钟和秒。

date

似乎没有提供该选项。有一种简单的方法吗?

    

linux bash datetime timestamp unix-timestamp
6个回答
1671
投票

date +%s

最近在
depate手册中进行了纠正:

自时代以来(1970-01-01 00:00 UTC)以来的秒s =秒

即可添加 在任何给定的日期(例如1973年10月21日)以来获得自时代以来的秒数。

195
投票


将秒钟的秒数转换为日期

date --date @120024000

命令
date

非常通用。您可以使用日期做的另一件很酷的事情(无耻地复制了
date --help
)。 在下周五上午9点在US

的西海岸展示当地时间
date --date='TZ="America/Los_Angeles" 09:00 next Fri'

the,请花一些时间阅读男人页面 
http://man7.org/linux/man-pages/man1/date.1.html

    

PUREBASH解决方案

sincebash5.0(2019年1月7日发行)您可以使用内置变量

EPOCHSECONDS

114
投票

$ echo $EPOCHSECONDS 1547624774

也有包括秒的分数。

EPOCHREALTIME
$ echo $EPOCHREALTIME 1547624774.371210
可以通过删除小数点(或逗号,如果您的语言环境是法语,德语等)将其转换为微秒(μs) 
EPOCHREALTIME

只能处理整数。
bash

在上面的所有示例中,印刷时间值都相等,以获得更好的可读性。实际上,时间值会有所不同,因为每个命令需要少量时间才能执行。


到目前为止,所有答案都使用外部程序
(( expression ))

sincebash 4.2,

$ echo ${EPOCHREALTIME/[^0-9]/}
1547624774371210
有一个新的修饰符
date
当与参数一起使用时,
printf
输出当前日期,由

%(dateformat)T
给出的格式,由
-1

处理(

dateformat

65
投票
,对于纯bash解决方案:

strftime(3)

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

man 3 strftime

printf '%(%s)T\n' -1
没有外部程序,没有子壳!
从bash 4.3,甚至不可能不指定
var

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

(但是总是提出论点可能是明智的。
如果您将
-1

用作参数,而不是

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

-1
,则BASH将使用shell启动的时间而不是当前日期。  这可以用于计算经过的时间

-2

最尴尬的实现:

-1

这是@pellucide所做的事情的扩展,但对于Macs:

确定任何给定日期(例如1973年10月21日)以来时代以来(1970年1月1日)的秒数

$ printf -v beg '%(%s)T\n' -2
$ printf -v now '%(%s)T\n' -1
$ echo beg=$beg now=$now elapsed=$((now-beg))
beg=1583949610 now=1583953032 elapsed=3422
请注意,为了完整,我将时间零件添加到了格式中。原因是
awk 'BEGIN {srand(); print srand()}'

将采用您给它的任何日期部分,并将
电的时间添加到提供的值。例如,如果您在下午4:19执行上述命令,则没有'00:00:00'零件,它将自动添加时间。这样的“ 1973年10月21日”将被解析为“ 1973年10月21日16:19:00”。那可能不是你想要的。

将您的时间戳转换回日期:

57
投票
$ date -j -f "%b %d %Y %T" "Oct 21 1973 00:00:00" "+%s" 120034800

apple的人页面以进行日期实施:
https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man1/date.1.html

24
投票

使用此bash脚本(我的

date

):
$ date -j -r 120034800
Sun Oct 21 00:00:00 PDT 1973

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.