0

喜びのないシェルの日付減算問題の解決策を探しているので、ここに行きます。私は「0102231203」である%m%d%H%M%Sのような日付形式を持っており、2番目の%Y%m%d%H%M%Sは、2番目のものから年を取って、通常の減算ですが、1日を超えると時刻がずれて問題になります。これが私がこれまでに試したことです

BTT=0102234500

TPP=0102233635 (年を除いた後)

BT=date -d ${BTT}

TP=date -d ${TPP}

BT=date -d $BTT +%m%d%H%M%S

TP=date +%m%d%H%M%S -d ${TPP}

日付: 無効な日付「0102234500」

日付: 無効な日付「0102233635」

BT=date -d @${BTT} +%m%d%H%M%S

TP=date +%m%d%H%M%S -d @${TPP}

奇妙な出力

0329071355

0329072820

BT=date -d @${BTT}

TP=date -d @${TPP}

木曜日 3 月 29 日 07:13:55 BST 1973

木曜日 3 月 29 日 07:28:20 BST 1973

まだ両方に年を追加するように変更しました

BTT=20130102234500

TPP=20130102233635

BT=date -d @${BTT}

TP=date -d @${TPP}

7 月 19 日金曜日 08:53:55 GMT 639867

7 月 19 日金曜日 09:08:20 GMT 639867

この問題を解決するにはどうすればよいですか。tnx

4

1 に答える 1

1

日付の -d オプションは、人間が読める文字列を受け入れるため、完全な長さの日付を取得できる場合は、次のことができます。

me@server:/tmp$ BTT=`date +"%Y-%m-%d %H:%M:%S"`
me@server:/tmp$ TPP=`date +"%Y-%m-%d %H:%M:%S"`
me@server:/tmp$ echo $((`date -d "$TPP" +%s`-`date -d "$BTT" +%s`))
3

あなたのデータで:

me@server:/tmp$ BTT="2013-01-02 23:45:00"                          
me@server:/tmp$ TPP="2013-01-02 23:36:35"                          
me@server:/tmp$ echo $((`date -d "$BTT" +%s`-`date -d "$TPP" +%s`))
505

数秒で結果が得られます。

于 2013-01-03T18:41:02.193 に答える