从日期中获取月份和日期

28

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

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

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

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

# Day 
echo "Day:"$DD
echo "Month:"$MM
3个回答

49

sh 或者 bash 中:

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"

25

或者如果你想要当前的日期,请使用date +%Y/%m/%d。如果你想要将它们分开,你可以像这样做:

或者如果您需要当前日期,则使用date +%Y /%m /%d。如果您想要将它们分开,您可以执行以下操作:

read YYYY MM DD <<<$(date +'%Y %m %d')
echo "Today is Day:$DD Month:$MM"
一个更简单的方法是:
DD=$(date +%d)
MM=$(date +%m)
echo "Today is Day:$DD Month:$MM"

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


5
kent$  D="2013/01/17"

kent$  awk -F/ '{print "year:"$1,"Month:"$2,"Day:"$3}'<<<$D
year:2013 Month:01 Day:17

如果你只需要月份或日期,只需保留$2或$3,删除不需要的部分即可。
kent$  year=$(awk -F/ '{print $1}' <<<$D)                                                                                                                                   

kent$  echo $year
2013

Kent,谢谢。我可以把月份、年份和日期存储到变量中吗?我是新手。谢谢。 - user1570210
@user1570210 当然可以。请看编辑部分。我刚刚加入了年份。你应该知道如何处理月份或日期。只需将$1更改为$2或$3即可。祝好运。 - Kent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接