我意识到有很多涉及日期计算的问题和答案,但是我还没有在OS X / macOS上找到解决该问题的方法。我想计算两个日期和时间之间的时差,但语法必须不正确。
now=$(date +"%b %d %Y %H:%M:%S")
end=$(date +"Dec 25 2017 08:00:00")
dif=$(date -j -f "%b %d %Y %H:%M:%S" "$end" - "$now")
echo $dif
# Mon Dec 25 08:00:00 MST 2017
Run Code Online (Sandbox Code Playgroud)
它仅返回$end值,因此我不确定如何实际计算时间差。
理想的方法是将当前时间转换为EPOCH,并将所需的日期也转换为EPOCH并获取差异(此方法适用bash于macOS Sierra)
dudeOnMac:~ $ date +%s
1512757414
dudeOnMac:~ $ date -j -f "%b %d %Y %H:%M:%S" "Dec 25 2017 08:00:00" +%s
1514169000
Run Code Online (Sandbox Code Playgroud)
所以现在按需存储在变量中
end=$(date -j -f "%b %d %Y %H:%M:%S" "Dec 25 2017 08:00:00" +%s)
now=$(date +%s)
printf '%d seconds left till target date\n' "$(( (end-now) ))"
printf '%d days left till target date\n' "$(( (end-now)/86400 ))"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |