Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用shell脚本将人类可读的时间转换为历元_Shell_Date_Epoch - Fatal编程技术网

使用shell脚本将人类可读的时间转换为历元

使用shell脚本将人类可读的时间转换为历元,shell,date,epoch,Shell,Date,Epoch,我有一个人类可读的时间 08-18-2016 09:18:25 我想用shell脚本把它转换成大纪元时间 我尝试了日期“+%s”,但我得到了错误 日期:无效日期'08-18-2016 09:32:42' 将日期时间转换为历元的标准方法是使用: date "+%s" # for this moment's date date -d" some date" "+%s" # for a specific date 但是,在这种情况下,格式无效: $ d

我有一个人类可读的时间

08-18-2016 09:18:25
我想用shell脚本把它转换成大纪元时间

我尝试了
日期“+%s”
,但我得到了错误

日期:无效日期'08-18-2016 09:32:42'


将日期时间转换为历元的标准方法是使用:

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
$sed's##/#;s###/#'

谢谢你的解释,费多尔基。但1471511905年是大纪元 对于08 18 2016 09:18:25,而不是1471504705莫希特河


date-u…
将打印协调世界时。

epoch表示自1970年1月1日起的秒数?输出应为'1471511905'您知道
date-d“…您的日期…”“+%s”
?我尝试过,但没有成功。获取错误:日期:无效日期'08-18-2016 09:32:42'感谢您对fedorqui的解释。但是1471511905是08 18 2016 09:18:25的大纪元时间,而不是1471504705。@MohitRane嗯,这一定与您所在的地区有关。只要在你的机器上运行它,看看输出是什么。
$ 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