Linuxを使用していて、日付ツールを使用して、指定したカレンダーの日付に特定の日数、時間、分を追加しようとしています。
例えば:
$ date -d "2013-01-01 + 305 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131102123000
結果を分割して、読みやすくします。
2013-11-02 12:30:00
これは正しく機能しているようです。ただし、305日ではなく306日を追加すると、次のようになります。
$ date -d "2013-01-01 + 306 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131103113000
スプリット:
2013-11-03 11:30:00
時間が12ではなく11になっていることに注目してください。しかし、12時間を追加するように指示しました...もう一度1日を増やしましょう。
$ date -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
20131104123000
そして、結果をもう一度分割します。
2013-11-04 12:30:00
今、時間は私が期待したものに戻ります。日付バージョン8.12と8.4を使用してこれをテストしましたが、両方で同じ結果が発生します。私は何が間違っているのですか?
UTC日付から追加しようとしましたが、これをツールに指定しませんでした。これが解決策です:
date --utc -d "2013-01-01 + 307 days 12 hours 30 minutes" +"%Y%m%d%0k%M%S"
UTCはDSTを監視しないため、時間のシフトはありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加