現在まで1時間を追加できません。

現在まで1時間を追加できません。

私のスクリプトのdateコマンドに興味深い問題があります。私のスクリプトは、特定の日付範囲に対して時間ごとのデータロードを生成します。日付関数を使用して、「開始」日付に達するまで「開始」日付を1時間ずつ増やします。日付方法はうまく機能し、期待どおりに「開始」日付に1時間を追加します。ただし、2017/11/05 01:00:00に達すると増加は停止します。複数の日付でテストしてみませんでしたが、同じ問題がある別の日付は2016/11/06 01:00:00です。

$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T"
2017/11/05 01:00:00

$ date -d "2016/11/06 01:00:00 1 hour" +"%Y/%m/%d %T"
2016/11/06 01:00:00

Linuxバージョン Linux 3.10.0-229.4.2.el7.x86_64

ベストアンサー1

問題の原因はDST(夏時間)でした。 DST日付午前1時(11月の最初の日曜日)をdateコマンドに渡すと、内部的に日付に1時間を加えてDSTから1時間を減算できます。解決策は、@jkan5855が提案したように-u(UTC)を使用することです。

$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T" -u

おすすめ記事