この記事はQiitaで公開されていました
Unixコマンドで日時の変換をする方法が、OSによって全然違うのでまとめました。
日時からUnix-timeへの変換
ローカル時刻からUnix-time
2015年12月1日(JST)をUnix-timeに変換するコマンドです。
macOS: $ date -v15y -v12m -v1d -v0H -v0M -v0S +%s 1448895600 Linux: $ date --date='2015-12-01 00:00:00' +%s 1448895600 Plan9: % seconds '1 dec 2015 00:00:00' 1448895600
macOSだけ、時刻部分を省略すると現在の時刻がそのまま使われます。LinuxとPlan 9は、時刻部分が0:00:00として扱われます。
UTC表記の時刻からUnix-time
2015年12月1日(UTC)をUnix-timeに変換するコマンドです。
macOS: $ date -u -v15y -v12m -v1d -v0H -v0M -v0S +%s 1448928000 Linux: $ date -u --date='2015-12-01 00:00:00' +%s 1448928000 Plan9: % seconds '1 dec 2015 00:00:00 UTC' 1448928000
Unix-timeから日時への変換
Unix-timeからローカル時刻
macOS: $ date -r 1448895600 Tue Dec 1 00:00:00 JST 2015 Linux: $ date -d @1448895600 Tue Dec 1 00:00:00 JST 2015 Plan9: % date 1448895600 Tue Dec 1 00:00:00 JST 2015
Unix-timeからUTC表記の時刻
macOS: $ date -u -r 1448895600 Mon Nov 30 15:00:00 UTC 2015 Linux: $ date -u -d @1448895600 Mon Nov 30 15:00:00 UTC 2015 Plan9: % date -u 1448895600 Mon Nov 30 15:00:00 GMT 2015