typememo.jp

zsh date コマンドの使い方

2020.08.01

#tech#zsh

Contents

zsh 環境での date コマンドの使い方まとめです。 筆者は bash から zsh に乗り換えて、date コマンドに不具合が生じました。 この記事は、その不具合に対応した記録です。 同じような境遇の人は、欲しい情報が載っていると思います。

例えば、bash で --date "this monday" というオプションを設定していたが、 zsh ではエラーになってしまった、などなど。

Note: 以下に示す具体例は、2020.03.01 の出力結果です。 この記事を読んだ日によって出力結果は異なります。 ご留意くださいませ。

zsh での date コマンドの基本的な使い方

ターミナルで date と叩けば現在の日時を出力してくれます。

date
202031日 日曜日 12時15分56秒 JST

日付のフォーマット

日時をフォーマット指定して出力するには "+..." を使います。 例えば、

date "+%Y.%m.%d.%W %H:%M:%S"
2020.03.01.08 12:53:47

特定日時の出力

この記事で一番重要な内容は、 date -v で特定の日時を出力できるようになることです。 これだけは覚えておいてください。

以下、具体例を示しながら使い方を説明します。

年月日の指定

年月日を指定する方法。 例えば、2030/12/25 は何曜日?

date -v2030y -v12m -v25d
203012月25日 水曜日 12時35分33秒 JST

2030/12/25 は水曜日のようです。

ちなみに -vMMm-MMMm でも良いです。

date -v2030y -vDecm -v25d
203012月25日 水曜日 12時44分52秒 JST

時分秒の指定

時分秒を指定する方法。

date -v12H -v34M -v56S
202031日 日曜日 12時34分56秒 JST

曜日の指定

曜日を指定する方法。 例えば、今週の月曜の日時は?

date -vMonw
202032日 月曜日 12時58分31秒 JST

日曜日: date -vSunw or date -v0w 月曜日: date -vMonw or date -v1w 火曜日: date -vTuew or date -v2w 水曜日: date -vWedw or date -v3w 木曜日: date -vThuw or date -v4w 金曜日: date -vFriw or date -v5w 土曜日: date -vSatw or date -v6w

時間を進めたり時間を戻したりする

-v の後に + もしくは - をつけると、10日後や3年前など、 時間を進めたり戻したりすることができます。

例えば、2週前の月曜日は何日か知りたい場合

date -v-2w -vMonw
20202月17日 月曜日 21時35分29秒 JST

のように書けば良いですし、今日から三年後の週の木曜日は何日か知りたい場合

date -v+3y -vThuw
202332日 木曜日 21時37分14秒 JST

おわりに

zsh 環境での date コマンドの使い方の紹介でした。 基本的に -v オプションと "+%..." フォーマットでどうにかできます。

来月の第2火曜日は何日?などを出力するにはどうすれば良いか、 筆者はまだわかっていません。 わかり次第追記したいと思いますが、もしご存知の方がいれば、 コメントいただけると嬉しいです。

最後までお読みいただきありがとうございました。


山田 武尊 / 立教大学(理学) / ACCESS CO LTD