これまでの入力形式を指定する方法は?

これまでの入力形式を指定する方法は?

認識できない形式の日付と時刻が与えられた場合、その日付と時刻をどのようにdate認識できますか?date

たとえば、

$ date -d "09SEP2012:23:58:46"
date: invalid date `09SEP2012:23:58:46'
$ date -d "09SEP2012:23:58:46" --magic-option "ddMMMYYY:hh:mm:ss"
Sun Sep  9 23:58:46 MDT 2012

存在しますか--magic-option?そうでなければ、sed入力を正しい形式の日付文字列に変換するよりも、この問題を解決するためのよりエレガントな方法はありますか?

ベストアンサー1

POSIXやGNU Date --magic-optionFreeBSDはそれを呼び出しません(提案された構文ではなく出力書式指定子に-f似た構文で)。date

あなたの日付がGNU Dateで認識されるのに非常に近いです。やるべきことは、日付と時刻を区切るコロンを空白に置き換えることだけです。

date -d "$(echo "09SEP2012:23:58:46" | sed 's/:/ /')"

おすすめ記事