使用GNU coreutils中的日期解析YYYYMMDDHH格式的日期

时间:2018-05-25 17:11:12

标签: shell gnu-coreutils

不确定这是否重复。如果有意请指出答案。

$date  -d '2018022210' +'%Y%m%d%H'

错误地告诉我一个错误(date: invalid date 2018022210)。做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

如果要转换为GNU日期可以解析的格式,在小时之前添加T即可:

in='2018022210'
out="${in:0:8}T${in:8}"
date --utc -d "$out"

......正确发出:

Thu Feb 22 03:00:00 UTC 2018

答案 1 :(得分:0)

感谢@charles的回答。我也能够以与@charles提到的略有不同的方式进行解析。

date -d "$(echo '2018022210'  | awk '{print substr($1,1,8),substr($1, 9,10)}')" +'%Y%m%d %H'