GETTIME¶
Category: システム情報
書式¶
GETTIME( [ sec [, timezone ] ] )
引数¶
| Parameter | Description |
|---|---|
| sec | (省略可)EPOCH(1970年1月1日 00:00:00 UTC)からの経過秒数(整数)。省略時は現在のシステム時刻を返す |
| timezone | (省略可)日時を求めるタイムゾーン。省略時はOSのローカルタイム(タイムゾーンの指定) |
戻り値¶
以下の構造を持つ汎用配列:
| インデックス | 値 | 詳細 |
|---|---|---|
| 0 | 年 | 西暦 |
| 1 | 月 | 月 |
| 2 | 日 | 日 |
| 3 | 曜日 | 0〜6(0=日曜日) |
| 4 | 時 | 24時間表記 |
| 5 | 分 | 分 |
| 6 | 秒 | 秒 |
| 7 | 年内経過日数 | 年始からの経過日数(1月1日が0) |
| 8 | 夏時間フラグ | 0=標準時 / 1=夏時間 |
sec が扱える範囲(約±9億年)を超えているときは、警告 W0012(GETLASTERROR は 12)を出して -1 を返す。
解説¶
現在の日付・時刻情報を取得する。timezone を省略したときは、C言語の localtime 関数と同等の動作をする。
sec を指定した場合はその秒数をEPOCHからの経過時間として解釈し、対応する日時情報を返す。GETSECCOUNTと組み合わせることで、例えば10日後の日付を計算するといった用途に使える。
ローカルタイムの夏時間は、sec の時点の規則で判定する(今の時刻の夏時間かどうかではない)。
タイムゾーンの指定¶
timezone には次のいずれかを指定する。
| 指定 | 意味 |
|---|---|
省略、""、"local" |
OSのローカルタイム |
"UTC"、"GMT"、"Z" |
UTC |
"+09:00"、"+0900"、"+09"、"-5" |
UTCからの固定のオフセット(時間・分。東が正) |
"JST"、"EST"、"EDT"、"CST"、"CDT"、"MST"、"MDT"、"PST"、"PDT" |
名前で固定のオフセット |
| 整数 | UTCからの固定のオフセット(秒、東が正。32400 は +09:00)。±24時間未満 |
固定のオフセットを指定したときは夏時間を考慮せず、夏時間フラグ(インデックス8)は常に0になる。解釈できない指定は警告 W0012(GETLASTERROR は 12)を出し、ローカルタイムとして扱う。
使用例¶
現在時刻の sec は GETSECCOUNT で取得できる。これを活用すると、「今現在から○日後 / 前の時刻」を手軽に計算できる。
//10日後は何月何日?
_array = GETTIME()
"今は%(_array[0])年%(_array[1])月%(_array[2])日 %(_array[4])時%(_array[5])分%(_array[6])秒/"
--
_array = GETTIME(GETSECCOUNT(_array[0],_array[1],_array[2] + 10,0,_array[4],_array[5],_array[6]))
"10日後は%(_array[0])年%(_array[1])月%(_array[2])日 %(_array[4])時%(_array[5])分%(_array[6])秒\n"
// UTCでの日時
_utc = GETTIME(GETSECCOUNT(), 'UTC')
// 1970/1/1 00:00:00 UTC は、日本時間(+09:00)では 9時
_jst = GETTIME(0, '+09:00') // 1970,1,1,4,9,0,0,0,0
互換性¶
- YAYA: 初期から利用可能
- Tc542-1以降: 年内経過日数(インデックス7)と夏時間フラグ(インデックス8)が追加
- Tc606-1以降:
timezoneパラメータが追加
- Tc606-1: Windowsで年内経過日数が1月1日を1として数えていたのを、
localtimeと同じ0始まりに修正。夏時間フラグと、夏時間が時期によって違うタイムゾーンでの時刻を、今ではなくsecの時点で判定するようにした - AYA 5.8: 引数なしのみサポート