首页 > 解决方案 > 从日期字符串获取纪元时间

问题描述

我有一个输出这样的日期的过程(注意当天(4)前面的填充:

Mon Jun  4 17:53:42 2018

我想获得划时代的时间,所以我尝试过:

echo "Mon Jun  4 17:53:42 2018" | xargs -0 date -j -f "%a %b %d %T %Y" +%s

确实有效,但我留下了烦人的:

Warning: Ignoring 1 extraneous characters in date string (
)

我可以接受警告,但我尝试使用 sed 删除双倍间距:

echo "Mon Jun  4 17:53:42 2018" | sed -E 's/\ +/\ /g'

返回:

Mon Jun 4 17:53:42 2018

但是当我尝试将它传输到日期格式时,我再次收到警告(好像sed没有做它的事情)。

标签: bashmacosbsd

解决方案


问题不是空格,而是换行符。我删除sed并替换tr -d "\n"为删除有问题的字符:

echo "Mon Jun 4 17:53:42 2018" | tr -d "\n" | xargs -0 date -j -f "%a %b %d %T %Y" +%s


推荐阅读