Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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时间和localtime之间的差异?_Bash_Date - Fatal编程技术网

Bash 如何以秒为单位获得utc时间和localtime之间的差异?

Bash 如何以秒为单位获得utc时间和localtime之间的差异?,bash,date,Bash,Date,如何以秒为单位获得utc时间和localtime之间的bash差异?您可能需要做一些工作才能以秒为单位获得它,但是日期+%z会将您配置的时区偏移报告为[+-]HHMM。解析该输出并进行适当的数学运算,以秒为单位计算出来。您可能需要做一些工作才能在秒为单位计算出来,但是日期+%z会将您配置的时区偏移报告为[+-]HHMM。解析它的输出,并做适当的数学运算,以秒为单位计算出来。%s不是答案的一部分,没有一些与时间相关的滑稽动作,历元秒明确地是UTC(或者GMT,如果你是老派的话),所以设置TZ不会影

如何以秒为单位获得utc时间和localtime之间的bash差异?

您可能需要做一些工作才能以秒为单位获得它,但是
日期+%z
会将您配置的时区偏移报告为
[+-]HHMM
。解析该输出并进行适当的数学运算,以秒为单位计算出来。

您可能需要做一些工作才能在秒为单位计算出来,但是
日期+%z
会将您配置的时区偏移报告为
[+-]HHMM
。解析它的输出,并做适当的数学运算,以秒为单位计算出来。

%s
不是答案的一部分,没有一些与时间相关的滑稽动作,历元秒明确地是UTC(或者GMT,如果你是老派的话),所以设置TZ不会影响它

与特瓦尔伯格的建议类似:

IFS=":" read hh mm < <(date +%:z)
echo $(($hh*3600+$mm*60))

(这不是严格意义上的bash答案,因为它需要GNU date或同等版本,5.90及更高版本支持%:z和%::z)

%s
不是答案的一部分,没有一些与时间相关的滑稽动作,历元秒是明确的UTC(如果你是老派的话,可能是GMT),所以设置TZ不会影响它

与特瓦尔伯格的建议类似:

IFS=":" read hh mm < <(date +%:z)
echo $(($hh*3600+$mm*60))

(这并不是严格意义上的bash答案,因为它需要GNU date或同等版本,5.90及更高版本支持%:z和%::z)

这只适用于有整小时而不是几分钟的地方

echo $(($( date +%z)*36))

这只适用于整小时而不是几分钟的地方

echo $(($( date +%z)*36))