1. ホーム
  2. linux

[解決済み] Linuxでbashで昨日の日付を取得、DSTセーフ

2022-04-13 22:19:17

質問

Linux上で動作するシェルスクリプトがあり、この呼び出しを使用して、昨日の日付を YYYY-MM-DD の形式で表示します。

date -d "1 day ago" '+%Y-%m-%d'

たいていの場合はうまくいくのですが、昨日の朝、スクリプトを実行したときに 2013-03-11 0:35 CDT を返しました。 "2013-03-09" ではなく "2013-03-10" .

おそらく、サマータイム(昨日から始まった)のせいでしょう。と推測しているのですが、その方法は "1 day ago" が実装されているため、24時間引かれ、24時間前に 2013-03-11 0:35 CDT2013-03-09 23:35 CST という結果を導き出しました。 "2013-03-09" .

Linuxのbashで昨日の日付を取得するためのDSTセーフな方法ってなんだろう?

どのように解決するのですか?

これは、実行する頻度やタイミングに関係なく、うまくいくはずだと思うのですが.

date -d "yesterday 13:00" '+%Y-%m-%d'