OpenSSL命令將使NotBeforeDate
變量擁有價值(至少在bash的版本我使用):
notBefore=Oct 31 00:00:00 2013 GMT
所以,首先我們需要刪除notBefore=
部分:
dateStr=${NotBeforeDate/notBefore=/}
然後你可以使用date
命令:
date --date="$dateStr" --utc +"%m-%d-%Y"
選項告訴命令使用dateStr
值,--utc
表示日期以UTC(如由GMT
部分指定)和+"%m-%d-%Y"
將日期格式化爲所需格式。
輸出是:
2013年10月31日
PS:的選項可以根據自己的Linux版本的不同而不同。
您可以用date --help
或man date
檢查所有可用的。
例如,長選項和--utc
可能無法使用,但相當於短的版本可能是(只是舉個例子,我不知道如果date
命令有不同的UNIX版本之間的這種變化):
date -d "$dateStr" -u +"%m-%d-%Y"
不幸的是,我沒有完全相同的使用環境(unix中的ksh),但這應該起作用。
的-d
選項似乎是GNU特定的,所以如果它是不可用的,你必須手動解析字符串。假設dateStr
具有價值Oct 31 00:00:00 2013 GMT
,你可以運行:
printf '%s\n' "$dateStr" | awk '{ printf "%02d-%02d-%04d\n", (index("JanFebMarAprMayJunJulAugSepOctNovDec",$1)+2)/3, $2, $4}'
輸出是:
2013年10月31日
你能否解釋多一點是......來自'log'文件的日期或者什麼? – Hackerman
@Hackerman我從SSL證書中獲得該日期並保存在一個變量中,只是想知道它是否可以轉換爲短日期。 –
'保存在變量中',怎麼樣? – Hackerman