コンテンツにスキップ

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: 引数なしのみサポート

関連項目