在BASH shell脚本中或使用gdate时,给定一个类似于“2011年10月”的日期,如何将其转换为年-月数字格式?例如,输出应该是"2011-10“。
发布于 2013-03-07 00:34:54
mydate="Oct 2011"
date --date="$(printf "01 %s" $mydate)" +"%Y-%m"
GNU date的parse_datetime接口(本例使用了这个接口)有很多规则。2011年10月形式的日期不在其中,所以你在它前面加上一个"01“,日期喜欢它。
发布于 2013-03-07 00:42:52
read mon year <<< "Oct 2012"
date -d "$mon 1 $year" "+%Y-%m"
结果:
2012-10
发布于 2014-01-10 08:12:53
case "`date | awk '{print $2 }'`" in
Jan) MON="01" ;;
Feb) MON="02" ;;
Mar) MON="03" ;;
Apr) MON="04" ;;
May) MON="05" ;;
Jun) MON="06" ;;
Jul) MON="07" ;;
Aug) MON="08" ;;
Sep) MON="09" ;;
Oct) MON="10" ;;
Nov) MON="11" ;;
Dec) MON="12" ;;
esac
echo $MON
https://stackoverflow.com/questions/15252383
复制相似问题