如何使用bash将日期HH:MM:SS转换为秒?

Max*_*rim 7 bash date

如何使用bash将日期HH:MM:SS转换为秒?

知道这是我在文件中恢复的日期,所以我不能用另一种格式.

我有两个变量$ DateStart和$ DateEnd,我想要两者之间的差异.

Ken*_*ent 7

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


spb*_*ick 5

假设 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)


Eri*_*ten 5

在 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>是输出格式。