Date

如何找到自午夜以來的秒數?

  • October 21, 2021

使用該date程序,我如何計算自午夜以來的秒數?

為了避免競爭條件,仍然假設 GNU 日期:

eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"

使用zsh,您可以在內部執行此操作:

zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))

便攜,在沒有夏令時開關的時區,你可以這樣做:

eval "$(date +'h=%H m=%M s=%S')"
echo "$((${h#0} * 3600 + ${m#0} * 60 + ${s#0}))"

${X#0}是在某些 shell 中去掉一個前導 0,例如bashdash並導致andposh出現問題(shell 抱怨它是一個無效的八進制數)。08``09

引用自:https://unix.stackexchange.com/questions/146550