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"に直して使う。