使用外壳脚本
问题描述:
我具有人可读的时间作为使用外壳脚本
08-18-2016 09:18:25
我希望它使用外壳脚本转换成信号出现时间转换人类可读的时间到EPOCH。
我试着用date "+%s"
但我得到的错误
日期:无效日期'2016年8月18日9时32' 分42秒
答
为datetime转换为规范的方法时代是使用:
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
答
感谢您的解释fedorqui。但是,1471511905是划时代的时间 08 18 2016年9时18分25秒,没有1471504705. - 莫希特莱恩
date -u …
将打印协调世界时。
epoch含义自1970年1月1日以来的秒数? – fedorqui
输出应该是'1471511905' –
您是否知道'date -d“...您的日期...”“+%s”'? – fedorqui