整数カウンタとしての、現在の日付と時刻を含みます。
Synopsis
$HOROLOG
$H
概要
$HOROLOG は、現在の日付と時刻を示す、コンマで区切られた 2 つの整数値を含みます。これらの整数はカウンタで、外部でユーザが読み込める日付と時刻ではありません。$HOROLOG は、以下の形式で現在の日付を返します。
date,time
最初の整数は、1840 年 12 月 31 日を 0 として数えた日数で、1841 年の 1 月 1 日が 1 日目になります。Caché は任意の開始ポイントから、カウンタを使用して日付を表示するので、Caché は 2000 年問題の影響は受けません。
2 番目の整数は、その日の午前 0 時 00 分からの秒数を表します。システムは、0 から 86399 秒で時間フィールドをインクリメントします。深夜 12 時に 86399 に到達すると、システムは時間フィールドを 0 にリセットしてから、日付フィールドを 1 つインクリメントします。
$ZTIMEZONE を設定すると、現在のプロセスに対する $HOROLOG の値に影響します。これは、$HOROLOG の時間部分を変更し、またこの変更が $HOROLOG の日付部分を変更します。
$HOROLOG は使用しているローカルのタイム・ゾーンに対して特定で、サブセカントの記録は行いません。サブセカントで UTC (タイム・ゾーン独立) 形式で現在の日付と時刻を取得するには、$ZTIMESTAMP を使用します。
以下のように、システム・メソッドを呼び出すことで、現在の同じ日付と時刻を取得することができます。
   WRITE $SYSTEM.SYS.Horolog()
 
詳細は、Caché クラス・リファレンス の “Class %SYSTEM.SYS” セクションを参照してください。
日付・時刻の変換
$ZDATE 関数を使用して、外部でユーザが読み込める形式に $HOROLOG の日付部分を変換できます。$ZTIME 関数を使用して、外部でユーザが読み込める形式に $HOROLOG の日付部分を変換できます。$ZDATETIME 関数を使用して、日付と時刻の両方を変換できます。
$ZDATEH 関数を使用して、外部でユーザが読み込める形式に $HOROLOG の日付部分を変換できます。$ZTIMEH 関数を使用して、外部でユーザが読み込める形式に $HOROLOG の時刻部分を変換できます。$ZDATETIMEH 関数を使用して、$HOROLOG 値の日付と時刻の両方を変換できます。
日付の設定
$ZUTIL(71) 関数を使用して、$HOROLOG を現在のプロセスに対してユーザ指定の日付に設定することができます。
この特殊変数は、SET コマンドを使用して変更することはできません。変更を試みると、<SYNTAX> エラーが返されます。
以下の例は、$HOROLOG の現在の内容を表示します。
   WRITE $HOROLOG
 
58923,49170 の形式で値を返します。
以下の例は $ZDATE を使用して、$HOROLOG のデータ・フィールドをデータ形式に変換します。
   WRITE $ZDATE($PIECE($HOROLOG,",",1))
 
04/29/2002 の形式で値を返します。
以下の例は、$HOROLOG の時刻部分を 12 時間 (a.m. あるいは p.m.) の "時間 : 分 : 秒" 形式に変換します。
CLOCKTIME    
	NEW
	SET Time=$PIECE($HOROLOG,",",2)
	SET Sec=Time#60
	SET Totmin=Time\60
	SET Min=Totmin#60
	SET Milhour=Totmin\60
	IF Milhour>12 { SET Hour=Milhour-12,Meridian=" pm" }
	ELSE { SET Hour=Milhour,Meridian=" am" }
	WRITE !,Hour,":",Min,":",Sec,Meridian
	QUIT
 
関連項目