Plan 9とGo言語のブログ

主にPlan 9やGo言語の日々気づいたことを書きます。

Unix-timeと日時の相互変換

この記事は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だけ、時刻部分を省略すると現在の時刻がそのまま使われます。LinuxPlan 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