2013-04-22 10 views
6

linuxでは、dateは現在の時刻を表示するのに役立ちます。現在の時間+ 1時間を印刷したい場合、どのオプションを指定する必要がありますか?linuxコマンド "date"を使用して特定の時間を追加します

+1

タイムゾーン修正を行う場合は、環境変数TZを見て、日付をUTCに保存してください! – sehe

+0

私はちょうど私の別のコードの入力として、現在の時間と1時間後を取得したい、ありがとう。 – waitingkuo

+1

良い、私のお金は、最もupvoted答えにして:)(私は+1) – sehe

答えて

24

ちょうど日付で、いくつかの計算を行うために-d(または​​)を使用します。たとえば

date -d '+1 hour' '+%F %T' 
# ^^^^^^^^^^^^ 

$ date '+%F %T' 
2013-04-22 10:57:24 
$ date -d '+1 hour' '+%F %T' 
2013-04-22 11:57:24 
#   ^
+0

次のような特定の日付に時間を追加することもできます。 $ date -d "5月16日10:41:56 EDT 2017 + 12360.471秒" Tue May 16 14:07:56 EDT 2017 –

0

TZ=Asia/Calcutta date(明らかにこれはあなたにカルカッタの時間を与えるでしょう)。

この操作では、TimeZone(TZ)環境変数のみが変更されます。指定した新しいタイムゾーンに永続的には設定されません。

+3

咳!私はタイムゾーンについて尋ねるつもりだったが、**あなたの**付帯的なローカルタイムゾーンと一致するようにそれをハードコードすることは... OPがする必要があるものになる可能性は非常に高いです。 – sehe

+0

これは永続的に何も変更しません@sehe、それは単なる操作の範囲の変数を変更するだけです。もし彼が 'ヨーロッパ/ロンドン'や 'アメリカ/シカゴ'を望んでいるのであれば、彼等を代用することができます。 –

+0

申し訳ありませんが、これは間違っています。ほとんどの場合、動作するように見えるかもしれませんが、ある時点では**失敗します**。たとえば、目的地TZが夏時間に切り替わったときに、あなたの夏時間に切り替わったときなどです。 – Schnouki

1

よると、このsourceあなたがやるだけのことができます:

date --date = '1 hour'

0

は、私たちは、私は同じ

!/ binに/ SHを横断するコードの下に使用し、それは私が最後の3ヶ月から日付を横断する必要あり、私はケースを処理していたコードの下に使用して取得することができます

for i in {90..1} 
    do 
    st_dt=$(date +%F' 00:00:00' -d "-$i days") 
    echo $st_dt 
    j=$((i-1)) 
    end_dt=$(date +%F' 00:00:00' -d "-$j days") 
    echo $end_dt 
    done 
シェルスクリプトで
0

、我々は時間を追加する必要がある場合は、コマンドと日付形式の下に使用します(DATE文字列の前にTIMEをPUT)

date -d"11:15:10 2017-02-05 +2 hours" +"%Y-%m-%d %H:%m:%d" この意志出力 2017-02-05 13:15:10

関連する問題