日付文字列をタイムスタンプに変換

日付文字列をタイムスタンプに変換

epochタイムスタンプで文字列日付を変換する正しい構文が見つかりません。

スクリプトは次のとおりです。

date -d '2012-03-02 22:00 EDT' +%s
DATEJ=`echo -n \'2012-03-02 22:00\'`
echo $DATEJ
date -d $DATEJ EDT +%s

明らかにする

[gg@raspi8 ~]$ CNVDATTS
1330740000  
'2012-03-02 22:00'  
date: opérande supplémentaire « EDT »  
Saisissez « date --help » pour plus d'informations.  

何が問題なの?

変数がDATEJ最初の行の文字列と同じ値を提供していないようです。を書かないとEDTエラーは同じですが、言及してください+%s

ベストアンサー1

ここで問題は一重引用符のようです。$DATEJ。あなたの変数はこれを課します。

それに変える

DATEJ=`echo -n "2012-03-02 22:00"`

そして最後のコマンドで:

date -d "$DATEJ EDT" +%s

これは働きます:

$ date -d '2012-03-02 22:00 EDT' +%s
1330740000
$ DATEJ=`echo -n "2012-03-02 22:00"`
$ echo $DATEJ
2012-03-02 22:00
$ date -d "$DATEJ EDT" +%s
1330740000

編集する

echo実際にスクリプトが強制的に指定しない限り、日付は必要ありません。$DATEJ単に次のように表現できます

DATEJ="2012-03-02 22:00"

おすすめ記事