从日期获取月份和日期

use*_*210 17 unix linux date

我想在Linux中从Date获取月份和日期.这是我的代码

# Set Date 
D="2013/01/17"

# get day 
DD=$(D+"%d")

# get day 
MM=$(D+"%M")

# Day 
echo "Day:"$DD
echo "Month:"$MM
Run Code Online (Sandbox Code Playgroud)

cyf*_*r01 30

shbash:

D="2013/01/17"
DAY=$(date -d "$D" '+%d')
MONTH=$(date -d "$D" '+%m')
YEAR=$(date -d "$D" '+%Y')

echo "Day: $DAY"
echo "Month: $MONTH"
echo "Year: $YEAR"
Run Code Online (Sandbox Code Playgroud)


And*_*son 20

或者如果您想要当前日期,请使用date +%Y/%m/%d.如果你想单独使用它们,你可以这样做:

read YYYY MM DD <<<$(date +'%Y %m %d')
echo "Today is Day:$DD Month:$MM"
Run Code Online (Sandbox Code Playgroud)

更简单的方法是:

DD=$(date +%d)
MM=$(date +%m)
echo "Today is Day:$DD Month:$MM"
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下你执行date两次,效率很低,如果你真的不走运,日期可能会在这两行之间发生变化;)


Ken*_*ent 5

kent$  D="2013/01/17"

kent$  awk -F/ '{print "year:"$1,"Month:"$2,"Day:"$3}'<<<$D
year:2013 Month:01 Day:17
Run Code Online (Sandbox Code Playgroud)

如果你只想要月或日,只需留下 2 美元或 3 美元,删除不需要的部分

编辑

kent$  year=$(awk -F/ '{print $1}' <<<$D)                                                                                                                                   

kent$  echo $year
2013
Run Code Online (Sandbox Code Playgroud)