如何使用bash将日期HH:MM:SS转换为秒?
知道这是我在文件中恢复的日期,所以我不能用另一种格式.
我有两个变量$ DateStart和$ DateEnd,我想要两者之间的差异.
date +%s
Run Code Online (Sandbox Code Playgroud)
返回自1970-01-01 00:00:00 UTC以来的当前日期时间(以秒为单位)
如果你想在1970-01-01 00:00:00 UTC之后以秒为单位获得给定的日期时间,例如:
kent$ date -d"2008-08-08 20:20:20" +%s
1218219620
Run Code Online (Sandbox Code Playgroud)
要在几秒钟内获得差异,你只需几秒钟即可得到两个日期,并做一个 s1-s2
假设 HH:MM:SS 格式的时间是可变的time_hhmmss,并且以秒为单位的时间需要存储在time_s:
IFS=: read -r h m s <<<"$time_hhmmss"
time_s=$(((h * 60 + m) * 60 + s))
Run Code Online (Sandbox Code Playgroud)
在 Mac 上,您可以使用-j和-f选项的组合将日期转换为另一个日期:
$ date -j -f '%Y-%m-%d %H:%M:%S' "2016-02-22 20:22:14" '+%s'
1456168934
Run Code Online (Sandbox Code Playgroud)
其中-j抑制更改系统时钟,
-f <fmt>给出用于解析给定日期的格式,
"2016-02-22 20:22:14"是输入日期,
+<fmt>是输出格式。