Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 以秒为单位获取UTC时间_Bash_Date_Datetime - Fatal编程技术网

Bash 以秒为单位获取UTC时间

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

看起来我无法在秒内获得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时间后,下面是我现在面临的问题的更多细节


我试图将文件中写入的日期与python进行比较。此日期以秒为单位写入UTC时间。bash
date+%s
没有给我相同的。实际上,如果我使用python
time.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