指定/ bin / date的输入日期格式

时间:2010-10-06 14:43:15

标签: unix shell date

我正在创建Unix bash脚本,用于解析Web服务器日志文件并将此数据插入数据库。所以我需要将格式为“05 / Oct / 2010:07:38:40 +0400”的时间戳转换为“YYYY-mm-dd”。

我尝试使用/ bin / date -d,但它不接受给定的格式。我找不到为此工具指定输入日期格式的方法。是可能还是我应该考虑替代解决方案?

2 个答案:

答案 0 :(得分:0)

你需要:

 date +%F

此外,这似乎有效:

date -d "05 Oct 2010 07:38:40 +0400" +%F

您需要使用空格作为分隔符,而不是 /

答案 1 :(得分:0)

input_date="05/Oct/2010:07:38:40 +0400"
better_date=`echo $input_date | sed -E 's|(..)/(...)/(.{4}).*|\1 \2 \3|'`
date -I -d "$better_date"