可能重复:
在 bash 中转换日期格式
我需要转换一个日期,例如
2012-06-01T19:05:00+02:00
像这样
01-06-2012 19:05
理想情况下使用sed或awk。我该怎么做呢?
可能重复:
在 bash 中转换日期格式
我需要转换一个日期,例如
2012-06-01T19:05:00+02:00
像这样
01-06-2012 19:05
理想情况下使用sed或awk。我该怎么做呢?
这可以在不借助 sed 或 awk 的情况下完成,因为 bash 本身可以完成大部分所需的字符串替换。具体来说,您只需要:
日期格式的其余部分可以由date命令处理。
$ date_string='2012-06-01T19:05:00+02:00'
$ date_string="${date_string/T/ }"
$ date_string="${date_string/+*/}"
$ date -d "$date_string" '+%d-%m-%Y %H:%M'
01-06-2012 19:05
echo "2012-06-01T19:05:00+02:00"|sed 's/\(.*\)T\([0-9]*:[0-9]*\).*/\1 \2/'
2012-06-01 19:05
解释它的作用:
date -d "$(echo '2012-06-01T19:05:00+02:00' | sed 's/T/ /; s/+.*//')" '+%d-%m-%Y %H:%M'