如何以秒为单位获取 UTC 时间和本地时间之间的 bash 差异?
问问题
2724 次
3 回答
3
%s
如果没有一些与时间相关的滑稽动作,这并不是答案的一部分,纪元秒明确是 UTC(或者如果你是老派,可能是 GMT),所以设置 TZ 不会影响它。
类似于 twalberg 的建议:
IFS=":" read hh mm < <(date +%:z)
echo $(($hh*3600+$mm*60))
date
您可以通过为命令设置 TZ 来测试这是否正在执行您想要的操作:
IFS=":" read hh mm < <(TZ=Australia/Sydney date %:z) # answer is 39600
IFS=":" read hh mm < <(TZ=US/Eastern date +%:z) # answer is -18000
(这不是严格意义上的 bash 答案,因为它需要 GNU 日期或等效版本,5.90 及更高版本支持 %:z 和 %::z)
于 2013-01-15T18:10:54.883 回答
0
您可能需要做一些工作才能在几秒钟内获得它,但date +%z
会将您配置的时区偏移报告为[+-]HHMM
. 解析它的输出并进行适当的数学运算以在几秒钟内计算出来。
于 2013-01-15T16:16:00.323 回答
0
这仅适用于整个小时而不是分钟的地方。
echo $(($( date +%z)*36))
于 2014-02-04T11:41:56.417 回答