Bash将日期转换为时间戳

Len*_*nny 4 bash timestamp date

我有格式化日期,'YYYYMMDDHHMMSS'我需要将其转换为Unix时间戳.

我试过,date -d '20140826225834'但我得到'invalid date'错误.我认为我必须将我拥有的(20140826225834)转换为接受日期然后将其转换为时间戳?编辑:我已经从这个日期开始2014-08-21_23.03.07- 可能会更容易转换此日期类型

fed*_*qui 5

您应该更改日期的格式,以便date可以处理它.我将其更改为YYYY/MM/DD HH:MM:SS格式sed.

$ date -d"$(sed -r 's#(.{4})(.{2})(.{2})(.{2})(.{2})#\1/\2/\3 \4:\5:#' <<< "20140826225834")" "+%s"
1409086714
Run Code Online (Sandbox Code Playgroud)

分段:

$ sed -r 's#(.{4})(.{2})(.{2})(.{2})(.{2})#\1/\2/\3 \4:\5:#' <<< "20140826225834"
2014/08/26 22:58:34

$ date -d"2014/08/26 22:58:34"
Tue Aug 26 22:58:34 CEST 2014

$ date -d"2014/08/26 22:58:34" "+%s"
1409086714
Run Code Online (Sandbox Code Playgroud)