UNIX時間(エポック秒)変換関数
UNIX時間(エポック秒)変換関数
はてなダイアリーの時刻付き見出し記法など、データ管理に使われることのあるUNIX時間。
メモアプリの移行などで表記の変換が必要になることがあるので、YYYYMMDDHH24MISS形式(年月日時分秒を繋げた14桁の数字)との相互変換関数を作ってみた。
UnixTime(ut := "", mode := 0) { ; 例) ; UnixTime(20130804185000) ==> 1375609800 ; UnixTime(1375609800, 1) ==> 20130804185000 If mode = 0 { ut := ut ? ut : A_Now ut -= 19700101090000, Seconds Return, ut } Else { st := 19700101090000 ut := ut ? ut : Return A_Now st += ut, Seconds Return, st } }
一応説明すると、以下の様な機能。
- UnixTime(YYYYMMDDHH24MISS, 0)でその日時のUNIX時間を返す
- UnixTime(UNIXTIME, 1)でそのUNIX時間の日時を返す
- 二つの引数はいずれも省略可
- 第1引数を省略すると現在のYYYYMMDDHH24MISS形式での現在時刻が入る
- 第2引数を省略すると日時からUNIX時間への変換になる
なので、UnixTime()と書けば現在時刻のUNIX時間が取得できる。
ちなみに、取得できるUNIX時間は日本時刻になっているので、海外のソフトなんかで出力したUNIX時間を変換する場合には、9時間分のズレが生じる可能性がある。その場合は、"19700101090000"を"19700101000000"に直して使う。