Bash
Mac
UNIX

unixtimeとdatetimeを変換する(Mac/BSD編)

BSD系かGNU系かで微妙に違うのでメモ。MacはBSD系。

表示

普通にdate(time)を表示

date
2018年 2月22日 木曜日 06時47分12秒 JST

おまけ。UTCで表示。

date -u
2018年 2月21日 水曜日 21時48分17秒 UTC

普通にunixtimeを表示

Timezoneの概念は無いので常に同じコマンドでOK。

date +%s
1519249665

変換

unixtime → datetime

システム標準時に変換

date -r 1519249665
2018年 2月22日 木曜日 06時47分45秒 JST

UTCで変換

date -u -r 1519249665
2018年 2月21日 水曜日 21時47分45秒 UTC

フォーマット指定

date -r 1519249665 +"%Y-%m-%d %H:%M:%S"
2018-02-22 06:47:45
date -u -r 1519249665 +"%Y-%m-%d %H:%M:%S"
2018-02-21 21:47:45

datetime → unixtime

システム標準時

date -j -f "%Y-%m-%d %H:%M:%S" "2018-02-22 06:47:45" +%s
1519249665

UTC指定

date -u -j -f "%Y-%m-%d %H:%M:%S" "2018-02-22 06:47:45" +%s
1519282065