我是shell脚本的新手。 我需要将给定日期的格式更改为自定义格式,例如我在变量中的日期格式为MM / DD / YY HH:MM:SS但我希望日期格式为MM / DD / YYY HH:MM:SS这是一年四位数。 我们可以更改sys日期格式,但我需要在变量中使用相同的格式。 我的代码如下
START_DATE="12/20/14 05:59:01"
yr=`echo $START_DATE | cut -d ' ' -f1 | cut -d '/' -f3`
yr_len=`echo $yr | wc -c`
if [ $yr_len -lt 4 ]
then
tmp_yr="20${yr}";
else
1=1;
fi
ln=`echo $tmp_yr|wc -c`
在此之后,我按照想要的格式重新制作了相同的日期。
有人可以帮助我
此致 西。
答案 0 :(得分:1)
使用GNU日期:
date -d'02/16/15 09:16:04' "+%m/%d/%Y %T"
产生
02/16/2015 09:16:04
这就是你想要的。有关格式的详细信息,请参阅man date
;有关一些很好的示例,请参见this question。
答案 1 :(得分:0)
一个选项可能是在awk中使用日期/时间功能。这是一个oneliner:
echo '02/16/15 09:16:04' | sed 's\[/:]\ \g' | awk '{d0=$3+2000FS$1FS$2FS$4FS$5FS$6; d1=mktime(d0);print strftime("%m/%d/%Y %T", d1) }'
输出是:
02/16/2015 09:16:04
您可以在https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html
中找到更多strftime格式