在Unix中转换日期格式(AIX)

时间:2014-07-17 14:25:54

标签: unix timestamp aix type-conversion

我有一个字符串,其中包含以下格式的日期:

Wed May 13 13:57:00 1992

我需要将其转换为具有以下格式的字符串:yyyyMMddHHmmss

是否有任何bultin功能可以做到这一点?

P.S。 我需要它在AIX 6.1上工作

1 个答案:

答案 0 :(得分:1)

这是一个awk解决方案,应该足够便携(格式化更多,以提高可读性):

echo "Wed May 13 13:57:00 1992" | tr ':' ' ' | \
  awk 'BEGIN { months["Jan"] = "01"
               months["Feb"] = "02"
               .....
               months["Dec"] = "12"
             }
             { printf "%s%s%s%s%s%s\n", $7, months[$2], $3, $4, $5, $6 }'

我会将awk程序代码放在一个文件中,所以我只需输入一次,然后我就可以awk -f convert_date_format.awk代替......

tr位并非真的有必要 - 可以在awk中替换冒号(或只是拆分它们周围的时间字段),但它并不像添加tr步骤简单...