日付と時刻の値
このページでは、ObjectScript の日付と時刻の値の概要を示します。
概要
ObjectScript には、組み込みの日付タイプはありません。その代わりに、文字列として表される日付値を操作または形式設定するための関数が多数あります。日付形式は以下のようになります。
形式 | 説明 |
---|---|
$HOROLOG | これは、$HOROLOG ($H) 特殊変数で返される形式です。これはコンマで区切られた 2 つの整数からなる文字列です。最初の整数は、1840 年 12 月 31 日以降の日数、2 番目は今日の日付の午前 0 時以降の秒数です。$HOROLOG では秒の小数部はサポートされません。$NOW 関数は、秒の小数部を使用した $HOROLOG 形式の日付を提供します。InterSystems IRIS は、日付を $HOROLOG 形式に設定したり、この形式の日付を検証したりするための多数の関数を用意しています。 |
ODBC Date | これは、ODBC と他の多くの外部表現で使用される形式です。文字列の形式は、“yyyy-mm-dd hh:mm:ss” となります。ODBC の日付値は順番に並べられます。つまり、ODBC 日付形式でデータをソートした場合、このデータは自動的に年代順に並べられます。 |
ロケールの日付 |
これは現在のロケールで使用される形式です。ロケールによって、日付の形式は以下のように異なります。 “アメリカ” の日付は mm/dd/yyyy (dateformat 1) の形式に設定されます。“ヨーロッパ” の日付は dd/mm/yyyy (dateformat 4) の形式に設定されます。csyw、deuw、engw、espw、eurw、fraw、itaw、mitw、ptbw、rusw、skyw、svnw、turw、ukrw を除くすべてのロケールでは、dateformat 1 を使用します。これらのロケールでは dateformat 4 を使用します。 アメリカの日付では、秒の小数部を表すためにピリオド (.) を小数点区切り文字として使用します。ヨーロッパの日付では、秒の小数部を表すためにコンマ (,) を小数点区切り文字として使用します。ただし、engw、eurw、skyw ではピリオドを使用します。 すべてのロケールでは、スラッシュ (/) を日付区切り文字として使用しますが、例外としてチェコ語 (csyw)、ロシア語 (rusw)、スロバキア語 (skyw)、スロベニア語 (svnw)、およびウクライナ語 (ukrw) ではピリオド (.) を使用します。 |
システム時刻 | これは、$ZHOROLOG ($ZH) 特殊変数で返される形式です。システムが実行されている秒数 (とその一部) を含む浮動小数点数です。InterSystems IRIS を停止して再起動すると、この数値がリセットされます。一般的にこの形式は、処理のタイミングを計り検証するために使用します。 |
以下は、異なる日付形式の使用方法についての例です。
SET now = $HOROLOG
WRITE "Current time and date ($H): ",now,!
SET odbc = $ZDATETIME(now,3)
WRITE "Current time and date (ODBC): ",odbc,!
SET ldate = $ZDATETIME(now,-1)
WRITE "Current time and date in current locale format: ",ldate,!
SET time = $ZHOROLOG
WRITE "Current system time ($ZH): ",time,!
日付・時刻の変換
ObjectScript には、日付と時刻の値を変換するための関数もあります。
-
関数 $ZDATE は、$H 形式で日付を指定された場合、指定した形式で日付を表す文字列を返します。
以下に例を示します。
TESTNAMESPACE>WRITE $ZDATE($HOROLOG,3) 2010-12-03
-
関数 $ZDATETIME は、$H 形式で日付と時刻を指定された場合、指定した形式で日付と時刻を表す文字列を返します。
以下に例を示します。
TESTNAMESPACE>WRITE $ZDATETIME($HOROLOG,3) 2010-12-03 14:55:48
-
他の形式の日付と時刻の文字列を指定された場合、関数 $ZDATEH および $ZDATETIMEH は、それらを $H 形式に変換します。
-
関数 $ZTIME は時刻を $H 形式から変換し、$ZTIMEH は時刻を $H 形式に変換します。
$H 形式の詳細
$H 形式は、コンマで区切られた数値のペアです。以下に例を示します。54321,12345
-
最初の数値は、1840 年 12 月 31 日からの日数です。つまり、日付の番号 1 は 1841 年 1 月 1 日です。この数値は常に整数です。
-
2 番目の数値は、指定された日付の午前 0 時からの秒数です。
$NOW() などのいくつかの関数では、小数部分が提供されます。
開始日の説明を含む詳細は、"$HOROLOG" を参照してください。