2011-12-23 3 views
0

で日付を変換しますこれは私がはシェル

Fri Dec 23 13:18:58 CET 2011 

(秒は常に00でなければなりません)のようなものでは

12-23-11 13:37 

のような日付を変換しないか、HA​​RT一つですか?

答えて

2

GNU日付5.97で、あなたは行うことができます:

 
$ date -d '11-12-23 13:37' 

はあなたが欲しいものを得るために、あなたがする必要があるすべてはあなたの入力をマッサージです。

GNU日付がここに何をしたいん迅速なperlスクリプトだ、ユビキタスではないので:

 
$ echo 12-23-11 13:37 | 
    perl -MTime::Local -wnE ' 
    y/-:/ /; 
    @F=split; 
    say scalar localtime timelocal(0, $F[4], $F[3], $F[1], $F[0] - 1,$F[2]); 
' 
Fri Dec 23 13:37:00 2011 

は(-EためのPerl 5.10が必要と言うが、-eと印刷を使用して、古いperlで動作するはずです)

+0

まあ、私の日付はMM-DD-YY MM:SSです。この例はYY-MM-DD MM:SSとしか動作しません。MM:SS –

+0

したがって、 'あなたの入力をマッサージする'というフレーズ。 –

1

これはあなた自身のためのスクリプトで、何百万もの異なる環境で動作するものではない場合は、利用可能なバージョンdateのバージョンに応じて使用する必要があります。

特定のバージョンのマニュアルページdateを参照してください。それはhttp://ss64.com/bash/date.htmlで文書化されたバージョンだ場合たとえば、あなたはそれがないように、入力形式を指定する-fオプション、-jオプションを使用し、Mac OS Xでは、入力文字列の​​など

を使用することができます日付を設定して、コマンドラインで出力形式を指定してください。