Bash 以秒为单位获取UTC时间
看起来我无法在秒内获得bash UTC日期。我在悉尼,所以UTC时间+10小时Bash 以秒为单位获取UTC时间,bash,date,datetime,Bash,Date,Datetime,看起来我无法在秒内获得bash UTC日期。我在悉尼,所以UTC时间+10小时 date Thu Jul 3 17:28:19 WST 2014 date -u Thu Jul 3 07:28:20 UTC 2014 但当我尝试转换它时,我得到的结果与UTC时间不同 date +%s 1404372514 date -u +%s 1404372515 我错过了什么 在得到回答说date+%s返回UTC时间后,下面是我现在面临的问题的更多细节 我试图将文件中写入的日期与p
date
Thu Jul 3 17:28:19 WST 2014
date -u
Thu Jul 3 07:28:20 UTC 2014
但当我尝试转换它时,我得到的结果与UTC时间不同
date +%s
1404372514
date -u +%s
1404372515
我错过了什么
在得到回答说
date+%s
返回UTC时间后,下面是我现在面临的问题的更多细节
我试图将文件中写入的日期与python进行比较。此日期以秒为单位写入UTC时间。bash
date+%s
没有给我相同的。实际上,如果我使用pythontime.asctime(time.localtime(date\u in\u seconds\u from\u bash))
,我得到的是悉尼的当前时间,而不是UTC。我不明白。我相信+%s
是从新纪元开始的几秒钟。它是时区不变的 您说您正在使用:
time.asctime(time.localtime(date_in_seconds_from_bash))
其中,date\u in\u seconds\u from\u bash
大概是date+%s
的输出
顾名思义,time.localtime
函数提供本地时间
如果需要UTC,请使用time.gmtime()
而不是time.localtime()
如上所述,date+%s
的输出是时区不变的,因此date+%s
完全等同于date-u%s
。它打印“历元”后的秒数,即1970-01-01 00:00:00 UTC
。您在问题中显示的输出与以下内容完全一致:
date -u
Thu Jul 3 07:28:20 UTC 2014
date +%s
1404372514 # 14 seconds after "date -u" command
date -u +%s
1404372515 # 15 seconds after "date -u" command
我敢打赌,这就是我们的初衷
$date-u--date=@1404372514
2014年7月3日星期四07:28:34 UTC
< /代码> 可以考虑将此行添加到<代码> ~/.BasHyFrase(或)中,以便可以快速获得当前UTC作为当前时间和秒的时间。p>
别名utc='date-u&&date-u+%s'
是否以utc秒为单位获取日期?@RomanzoCriminale根据日期--help
:%s自1970-01-01 00:00:00 utc以来的秒数
。添加-u
不会产生任何区别。它仍将基于UTC打印。这就是你得到相同值的原因。上面两个答案都是正确的。UTC秒数在世界任何地方都是相同的,因此对于明确的时间戳非常有用。自1970年悉尼午夜以来的秒数可以通过计算该时间与UTC零时间之间的差值来计算(我想是负11小时左右),但这个数字可能不是您想要的。我的问题是,我试图将写入文件的日期与python进行比较。该日期以秒为单位写入UTC时间。而bash'date+%s没有给我相同的。实际上,如果我使用python time.asctime(time.localtime(date_in_seconds_from_bash)),我得到的是悉尼的当前时间,而不是UTC。我不明白date+%s
的返回值实际上是UTC