我正在使用Sun Solaris unix框。 我的要求是將任何字符串(例如21Mar2014)轉換爲日期格式(例如20140321)。Unix中的字符串轉換日期
& date - d「21Mar2014」不適用於我的情況。它說「非法選項 - D」
請幫我在字符串到日期的轉換。
我正在使用Sun Solaris unix框。 我的要求是將任何字符串(例如21Mar2014)轉換爲日期格式(例如20140321)。Unix中的字符串轉換日期
& date - d「21Mar2014」不適用於我的情況。它說「非法選項 - D」
請幫我在字符串到日期的轉換。
如果你有bash
,
#!/bin/bash
mydate="$1"
arr=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")
date=${mydate:0:2}
mon=${mydate:2:3}
year=${mydate:5:4}
i=0
for month in ${arr[@]}
do
let i++;
if [ "$month" == $mon ];then
if [ "$i" -lt 10 ];then
mon="0$i"
fi
break
fi
done
echo "$date$mon$year"
echo 21Mar2014 | perl -MDate::Calc=Decode_Date_EU -wnE 'say Decode_Date_EU ($_)'
不幸的是,這將打印:2014321
,所以你需要的工作有點困難,以獲得正確的格式:
echo 21Mar2014 | perl -MDate::Calc=Decode_Date_EU -wne '
printf("%4d%02d%02d\n", Decode_Date_EU ($_))'
「任何字符串'?你需要一些格式限制!我們應該在什麼日期轉換字符串'foo'?我們是否應該將字符串'前天'轉換?或者「在上個月的第三個星期四之前的四十七年有31天」。 –
沒有任何字符串。我的意思是「21Mar2014」,「01Apr2013」等字符串。 需要將其轉換爲其他格式,如20140321 – user3500634