您能否解释一下这两种语法有什么问题才能获得经过的时间(以秒为单位)?
如果我同时运行这两个命令:
date -u +%s # - for UTC - returns e.g. 1303430843.
date +%s # - for local time - mine is set to pacific time
# - also returns e.g. 1303430843
我得到完全相同的数字(例如1303430843)秒,没有差别,但我希望25200秒 - 7小时的差异,就好像我跑:
date -u "+%Y-%m-%d %H:%M:%S" # returns: 2011-04-22 00:01:14
date "+%Y-%m-%d %H:%M:%S" # returns: 2011-04-21 17:01:14 - 7 hours difference
这里的问题是什么?
谢谢
答案 0 :(得分:5)
从手册页:
自1970-01-01 00:00:00 UTC 以来%s秒
所以%s
返回自UTC指定的特定时间点以来的秒数,这意味着它根本不受时区的影响。
答案 1 :(得分:0)
没有捕获。时钟已设置并运行UTC。 date命令考虑了当地时区和日光节省。这样您就可以显示世界上任何时区的日期/时间。
答案 2 :(得分:0)
这是因为GMT uses UTC(大多数情况下它们是可以互换的)和PDT目前是7 hours behind。
以秒为单位获取当前UTC时间:
date -u +%s
以秒为单位获取当前的PDT时间:
TZ=":US/Pacific" date +%s
它非常聪明,可以拿到夏令时,所以你不必担心它。
答案 3 :(得分:0)
%s seconds since 1970-01-01 00:00:00 UTC
这不会随时区而变化。计算方法是一样的。