如何从一种日期格式转换为其他格式?

如何从一种日期格式转换为其他格式?

我的日期格式有一个问题。我想从一种格式更改为另一种格式,反之亦然。我的日期格式是

格式1

YYYY-MM-DD

格式2

MM/DD/YYYY

我想将格式 1 更改为格式 2 并将格式 2 更改为格式 1 。

答案1

为此,请使用 GNU“日期”。它还将为您在其他格式之间进行转换(请参阅date --help格式列表)。

$ date -d 2013-07-05 +%m/%d/%Y
07/05/2013
$ date -d 07/05/2013 +%F
2013-07-05

答案2

假设您有需要转换的文本形式的日期

echo '2013-12-13' | awk -v FS=- -v OFS=/ '{print $2,$3,$1}'

反之亦然

echo '12/13/2013' | awk -v FS=/ -v OFS=- '{print $3,$1,$2}'

答案3

$ echo YYYY-MM-DD | { IFS=- read y m d && echo "$m/$d/$y"; }
MM/DD/YYYY

如果您的文件包含很多这些日期,每行一个:

awk -F- -vOFS=/ '{print $2,$3,$1}' < that-file

答案4

使用 sed 如下:

$ echo '2013-12-13' | sed -r 's/([[:digit:]]{2,4})-([[:digit:]]{1,2})-([[:digit:]]{1,2})/\2\/\3\/\1/g'
12/13/2013
$ echo '12/13/2013' | sed -r 's/([[:digit:]]{1,2})\/([[:digit:]]{1,2})\/([[:digit:]]{2,4})/\3-\1-\2/g'
2013-12-13

相关内容