日付と時刻を検証し、形式を変換します。
Synopsis
$ZDATETIMEH(datetime,dformat,tformat,monthlist,yearopt,startwin,endwin,mindate,maxdate,erropt)
$ZDTH(datetime,dformat,tformat,monthlist,yearopt,startwin,endwin,mindate,maxdate,erropt)
しかし、5、6、7、8、9 の
dformat を使用するとき、
$ZDATETIMEH は、
dformat コード 1、2、3、5、6、7、8、9 に対応する、外部の日付形式によるあらゆる日付を認識し、変換します。また、T あるいは t で始まる特殊な相対日付形式も同様で、任意にプラス (+) やマイナス (-) を付けたり、現在の日付の前もしくは後に日数を付けます。
$ZDATETIMEH は、関数呼び出しで指定した時刻形式に関係なく、4 つの時刻形式の時刻を認識して変換します。さらに、
$ZDATETIMEH は、接尾語 AM、PM、NOON、MIDNIGHT を認識して変換します。これらの接尾語は、大文字、小文字、または両方を混ぜ合わせて表すことができます。これらの接尾語を文字に省略することもできます。
$HOROLOG 形式に変換する日付と時刻。
datetime は、先頭に日付、その後に 1 つの空白スペース、時刻と続く 1 つの文字列に評価する式として指定します。時刻部分を省略する場合、$ZDATETIMEH は
$HOROLOG 形式の時刻部分をゼロに設定します。有効な日付値、および時刻値は、現在のロケールの DateFormat および TimeFormat プロパティや、
dformat および
tformat パラメータに指定する値によって異なります。日付に関する詳細は、
$ZDATEH を参照してください。
時刻の値を表記する形式を指定する数値です。サポートされている値は、以下の通りです。
指定した月名を含む文字列あるいは変数名です。
monthlist にある名前は、現在のロケールの MonthAbbr プロパティに指定されている既定の月の省略値を置き換えます。
monthlist を使用して、正式な月名や、英語以外の言語の月名、およびその省略名を指定します。
monthlist の最初の文字は、区切り文字を指定します (既定の組み込みリストにある Jan の前に空白を表示します)。各月の名前、もしくは
monthlist にある省略名の間に、同じ区切り文字を置く必要があります。この区切り文字は、日付値の年月日の間に置きます。
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
January February March ... November December
dformat 値に 0、1、2、4、7 を使用して、年を 2 桁で表示する時間ウィンドウを指定する数値コードです。
yearopt の値は以下の通りです。
yearopt が 5 のとき、
startwin の数値は、現在より前の年数を示すスライディング・ウィンドウの最初の年を示します。スライディング・ウィンドウは常に、
startwin で指定した年の初日 (1 月 1 日) から開始します。
endwin を省略、あるいは -1 を指定した場合、スライディング・ウィンドウの有効期限は 100 年間です。
startwin と
endwin の両方を指定する場合、指定するスライディング・ウィンドウの年数は 100 年以内に収める必要があります。
有効な日付の下限を指定する数値です。
mindate を省略、あるいは -1 を指定すると、現在のロケールの DateMinimum プロパティから下限を取得します。既定は 0 (1840 年 12 月 31 日) です。
有効な日付の上限を指定する数値です。
maxdate を省略、あるいは -1 を指定すると、現在のロケールの DateMaximum プロパティから上限を取得します。既定は 2980013 (9999 年 12 月 31 日) です。
このパラメータは、
datetime が無効あるいは範囲外の場合に生じるエラー・メッセージを制御します。<ILLEGAL VALUE> あるいは <VALUE OUT OF RANGE> エラー・メッセージを生じる代わりに、関数は
erropt を返します。
以下の状況では、<FUNCTION> エラーが発生します。
-
無効な
dformat コード (-1 未満もしくは 9 より大きい整数値、0、整数以外の値) を指定したとき
-
tformat に無効な値 (-1 未満または 4 より大きい整数値、0、整数以外の値) を指定したとき
-
以下の状況では、<ILLEGAL VALUE> エラーが発生します。
以下の状況では、<VALUE OUT OF RANGE> エラーが発生します。
-
1840 年 12 月 31 日より前、あるいは 9999 年 12 月 31 日より後の日付 (あるいは T のオフセット) を指定して、
erropt 値を指定しないとき
-
erropt が指定されている場合、このパラメータは、無効な値あるいは
datetime の範囲外の値により生成されるエラー・メッセージのみを制御します。他のパラメータに無効、あるいは範囲外の値を指定することにより発生したエラーは、
erropt が指定されたか否かに関係なく、常にエラー・メッセージを生成します。
$ZDATETIMEH は、
dformat が 1 または 4 のとき、年月日の区切り文字として現在のロケールの DateSeparator プロパティの値を使用します。ODBC 日付形式 (
dformat は 3) の区切り文字は、常に ODBC 基準で要求されている - です。DateSeparator の既定値は / であり、この区切り文字は Caché のすべてのドキュメントで使用されています。
既定では、Caché は、現在のロケールの TimeSeparator プロパティ値を使用して、時間の区切り文字を指定します。 既定で、区切り文字列は : で、すべての例でこの区切り文字を使用しています。ODBC 日付形式 (
dformat が 3) の区切り文字は常に、ODBC 標準に合わせた : になります。
既定では、Caché は現在のロケールのプロパティを使用して、時間の接尾語名を指定します。$ZDATETIMEH については、これらのプロパティ (および対応する値) は、以下の通りです。
このドキュメントでは、これらのプロパティに常に既定値を使用します。
WRITE $ZDATEH("Nov 25, 2002",5)
WRITE $ZDATETIMEH("Nov 25, 2002 10:08:09.539",5)
これは、59133,36489.539 を返します。
WRITE $ZDATETIMEH("Nov 25, 2002",5)