日付/時刻型をテキストに変換

EGL では、各日付/時刻型をテキストへ変換する際に、異なるプロセスを使用します。
TIMESTAMP
変数が有効な値である場合、EGL は strLib.defaultTimestampFormat を使用します。 その書式が無効である場合、EGL は RuntimeException をスローします。 その書式が空ストリングである場合、EGL は、TIMESTAMP 変数を定義する際に使用したマスクに基づいて、「yyyy-MM-dd HH:mm:ss.SSSSSS」というデフォルト書式の一部を使用します。以下の例を考えてください。
  strLib.defaultTimestampFormat = "";
  myTimestamp TIMESTAMP("HHmmss")? = "123102";	
  writeStdOut(myTimestamp);
EGL はデフォルト書式の「HH:mm:ss」部分のみを使用し、コンソールに「12:31:02」と表示します。
TIME
変数が有効な値である場合、EGL は strLib.defaultTimeFormat を使用します。その書式が無効である場合、EGL は RuntimeException をスローします。 その書式が空ストリングである場合、結果は空ストリングになります。
DATE
変数が有効な値である場合、EGL は strLib.defaultDateFormat を使用します。 その書式が無効である場合、EGL は RuntimeException をスローします。 その書式が空ストリングである場合、結果は空ストリングになります。
INTERVAL (months)
EGL は、変数の定義に使用したマスクを使用して、間隔の各部分の桁数を決定します。書式化されたストリングには、以下の文字を、指定した順に含めることができます。
  • 値が負である場合、符号 (1 文字)
  • 年の数値 (マスクで指定された桁数を使用)
  • ハイフン (1 文字)
  • 月の数値 (マスクで指定された桁数を使用)
EGL は、最初に指定される値の先行ゼロを省略します。 例えば、変数に年と月の両方が格納されている場合、EGL は年の値の先行ゼロを省略しますが、月の値の先行ゼロは保持します。 変数に月のみが格納されている場合、EGL は月の値の先行ゼロを省略します。
変数に年も月も格納されていない場合、EGL は欠落しているフィールドおよびハイフンを省略します。 以下の例を考えてください。
  myInterval INTERVAL("yyyy") = 25;
  writeStdOut(myInterval);
コンソールに「25」と表示されます。
INTERVAL (seconds)
EGL は、変数の定義に使用したマスクを使用して、間隔の各部分の桁数を決定します。書式化されたストリングには、以下の文字を、指定した順に含めることができます。
  • 値が負である場合、負符号 (-) (1 文字)
  • 日の数値 (マスクで指定された桁数を使用)
  • スペース (1 文字)
  • 時間数 (マスクで指定されたもの)
  • コロン (1 文字)
  • 分数 (マスクで指定されたもの)
  • コロン (1 文字)
  • 秒数 (マスクで指定されたもの)
  • 小数点 (1 文字)
  • 秒の小数部の数値 (マスクで指定されたもの)
EGL は、最初に指定される値の先行ゼロを省略します。 例えば、変数に日と時間の両方が格納されている場合、EGL は日の値の先行ゼロを省略しますが、時間の値の先行ゼロは保持します。 変数に時間と分の両方が保存されている場合、EGL は時間の値の先行ゼロを省略しますが、分の値では保持します。
変数に特定のフィールドが格納されていない場合、EGL はそのフィールドおよびその後に続く区切り文字 (スペース、コロン、または小数点) をスキップします。 以下の例を考えてください。
  myInterval INTERVAL("dddddHHmm") = -5231301;
  writeStdOut(myInterval);
コンソールに「-523 13:01」と表示されます。

フィードバック