shell脚本从YYYY-MM-DD格式获取年份,日期和月份

时间:2013-09-06 08:21:32

标签: shell date format

我正在运行一个以“YYYY-MM-DD”格式接受日期的shell脚本。从这个日期输入,我怎么能分别得到年,月和日?

感谢您提前回复。

4 个答案:

答案 0 :(得分:5)

除了将字符串作为文本处理(使用grep / sed / awk / cut / ...)之外,您可以使用date命令:

kent$  date -d '2013-09-06' +%Y
2013

kent$  date -d '2013-09-06' +%m
09

kent$  date -d '2013-09-06' +%d
06

答案 1 :(得分:1)

您可以使用一个命令将它们存储在变量上:

read YEAR MONTH DAY < <(date -d '2013-09-06' '+%Y %m %d')
printf "%s\n" "$YEAR" "$MONTH" "$DAY"

答案 2 :(得分:0)

试试这个:

dt="2011-2-3"
arr=( $( date --date=$dt "+%Y  %m  %d") )
echo "Year > $arr"
echo "Month > ${arr[1]}"
echo "Month > ${arr[2]}"

答案 3 :(得分:0)

我不想使用date命令,所以我得到了以下代码。它使用awk,我认为它更适合这项任务。我以为你想把结果存储在变量中。

inputDate=2017-07-06

year=`echo $inputDate | awk -F\- '{print $1}'`
month=`echo $inputDate | awk -F\- '{print $2}'`
day=`echo $inputDate | awk -F\- '{print $3}'`