Date
如何找到自午夜以來的秒數?
使用該
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,例如bash
,dash
並導致andposh
出現問題(shell 抱怨它是一個無效的八進制數)。08``09