我有这样的日期格式:“ 2011年6月27日”,我想将其转换为20110627可以用bash做吗?
3 回答
HUWWW
TA贡献1874条经验 获得超12个赞
在OSX上,我使用-f来指定输入格式,使用-j来不尝试设置任何日期,并使用输出格式说明符。例如:
$ date -j -f "%m/%d/%y %H:%M:%S %p" "8/22/15 8:15:00 am" +"%m%d%y"
082215
你的例子:
$ date -j -f "%d %b %Y" "27 JUN 2011" +%Y%m%d
20110627
www说
TA贡献1775条经验 获得超8个赞
只用bash:
convert_date () {
local months=( JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC )
local i
for (( i=0; i<11; i++ )); do
[[ $2 = ${months[$i]} ]] && break
done
printf "%4d%02d%02d\n" $3 $(( i+1 )) $1
}
然后像这样调用它
d=$( convert_date 27 JUN 2011 )
或者,如果“旧”日期字符串存储在变量中
d_old="27 JUN 2011"
d=$( convert_date $d_old ) # not quoted
- 3 回答
- 0 关注
- 918 浏览
添加回答
举报
0/150
提交
取消