NissyBlog

Life goes on.

dateコマンドでオプション指定しても動かない時

dateコマンドを実行した時に詰まってしまったのでメモ。

私はプライベートPCはMacを使っています。言うまでもなくOSはMacOSであり、MacOSBSD系のOSです。
また、個人で使っている開発用サーバーはLinux系のサーバーを使用しています。

日付を元に条件分岐を行う処理を記述するために、dateコマンドで取得した値を引数で渡すコードを書いていました。
その日は所用があったためターミナルを二つ立ち上げ、片方はローカルのファイルの編集を、もう片方はサーバーに接続していました。
そんな時、うっかりローカルのファイルを編集するために立ち上げていたターミナルで成功したdateコマンドをサーバー上で実行したところ
dateコマンドは意図した日付を返さず、この事象になかなか気付くことが出来ませんでした。

結局はBSD系OSとLinux系OSではdateコマンドでは指定出来るオプションが違う。
という話でした。

せっかくなので、両方で一日前の日付を取得するコマンドを掲載し、結びとさせて頂きます。

BSD系OS

date -v-1d
2015108日 木曜日 014415秒 JST

Linux系OS

$ date --date "1 day"
20151010日 土曜日 01:44:32 JST

※参考
dateコマンドで○日前の日付を取得する - hogehoge foobar Blog Style5