シェルを使ってyyyymmdd形式の変数をunixtimeに変換したい。

投稿者: Anonymous

シェルを使ってyyyymmdd形式の変数をunixtimeに変換したい。

起きてる問題として変数に格納するとエラーが発生します。

date +%s --date "2005-01-01 00:00"
結果
1104505200

直のstringならエラーは起きないが、変数だとエラーが出る。

unitime='2005-01-01 00:00'
date +%s --date $unitime
結果
date: extra operand ‘00:00’
Try 'date --help' for more information.

やりたいこと「yyyymmddhhmm」の文字列をunixtimeに変換

unitime='202003020000'
date +%s --date $unitime
結果
date: invalid date ‘202003020000’

この結果から、どうもフォーマッティング関数が必要なので探しているのですが見つかりません。
お詳しい方いましたらご助力お願いします。

解決

「–date」に与える引数が空白を挟んで分割されて「–date 2005-01-01」と「00:00」と別れて解釈されているのが原因です。日付文字列をダブルクォーテーションで囲んであげれば良いと思います。

unitime='2005-01-01 00:00' ; date +%s --date "$unitime"
1104505200
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *