我有一个人类可读的时间
08-18-2016 09:18:25
我希望使用shell脚本将其转换为纪元时间。
我尝试使用date "+%s"
,但我收到了错误
日期:无效日期`08-18-2016 09:32:42'
答案 0 :(得分:2)
将日期时间转换为纪元的规范方法是使用:
date "+%s" # for this moment's date
date -d" some date" "+%s" # for a specific date
但是,在这种情况下,格式无效:
$ date -d"08 18 2016 09:18:25" "+%s"
date: invalid date ‘08 18 2016 09:18:25’
然后,在将字符串传递给date -d
之前,您需要按一下它。
这会将两个第一个空格转换为斜杠:
$ sed 's# #/#;s# #/#' <<< "08 18 2016 09:18:25"
08/18/2016 09:18:25
这样可行:
$ date -d"$(sed 's# #/#;s# #/#' <<< "08 18 2016 09:18:25")" "+%s"
1471504705
或使用变量:
$ nice_date=$(sed 's# #/#;s# #/#' <<< "08 18 2016 09:18:25")
$ date -d"$nice_date" "+%s"
1471504705
答案 1 :(得分:0)
感谢fedorqui的解释。但1471511905是时代 对于08 18 2016 09:18:25,而不是1471504705. - Mohit Rane
date -u …
将打印协调世界时。