我有這樣的日期格式:“ 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 關注
- 964 瀏覽
添加回答
舉報
0/150
提交
取消