COBOL 日時クラスの項目には、日付、時刻、およびタイム・スタンプ項目が含まれます。 これらの項目は、データ記述項目の FORMAT 文節で宣言されます。 たとえば、次のとおりです。
01 group-item. 05 date1 FORMAT DATE "%m/%d/@Y". 05 date2 FORMAT DATE.
日時クラスの項目の場合、FORMAT 文節は PICTURE 文節の代わりに使用されます。 上の例では、キーワード FORMAT の後で、キーワード DATE が日付のカテゴリーの項目を宣言します。 キーワード DATE の後で、フォーマット設定リテラルが日付データ項目の形式を記述します。 データ項目 date1 の場合、%m は月、%d は日、 また @Y は年 (2 桁の世紀を含む) を表します。 文字 % および @ は指定子の先頭にきます。 ここに示してある 3 つの指定子は、「WebSphere Development Studio: ILE COBOL 解説書」に記載されている指定子の集合の一部です。
もう 1 つの日付データ項目 date2 では、 フォーマット設定リテラルが明示的に指定されることはありませんが、SPECIAL-NAMES 段落にデフォルト日付形式を指定できます。 以下に、その例を示します。
SPECIAL-NAMES. FORMAT OF DATE IS "@C:%y:%j".
上の SPECIAL-NAMES 段落がデータ項目 date2 と同じプログラムに指定されていれば、 その日付形式は @C:%y:%j になるはずです。 また、SPECIAL-NAMES 段落が存在しない場合には、日付項目の形式はデフォルトである ISO がとられます。 ISO 日付の形式は @Y-%m-%d です。
デフォルトでは、COPY DDS は日時クラス項目を宣言すると、英数字項目について PICTURE 文節を生成します。 PICTURE 文節を FORMAT 文節に変更するために、いくつかの新しい CVTOPT パラメーター値が定義されました。 それらは、次のものです。
*DATE が指定されていれば、DDS 日付データ・タイプはすべて COBOL 日付項目に変換されます。 すなわち、PICTURE 文節ではなく、FORMAT 文節が生成されます。
DDS では、日付フィールドの形式を指定するために、DATFMT キーワードを指定することができます。 DATFMT キーワードは、ゾーン、パック、および文字の各フィールドに対しても指定できます。 これらのタイプのフィールドでは、COPY DDS は、通常、数字ゾーン、数字パック、および英数字の各データ項目について、 それぞれ PICTURE 文節を生成します。 CVTOPT パラメーターの *CVTTODATE 値を指定すると、 これらの項目について COPY DDS に強制的に FORMAT 文節を生成させることができます。
ゾーン、パック、および文字の各 DDS フィールドに許されている DATFMT パラメーターと、CVTOPT(*CVTTODATE) 変換パラメーターが指定されたときに DDS から生成される、 それぞれに相当する ILE COBOL 形式のリストについては 日時クラスと 日時データ・タイプを処理するを参照してください。
4 桁日付と 2 桁日付の混在を含む移動および比較の場合、ILE COBOL では、1900 という基本世紀と 40 という基本年でデフォルトのウィンドウ操作アルゴリズムを使用します。 結果が不正確になる可能性があるため、デフォルトのウィンドウを指定変更する必要があります。 ILE COBOL ウィンドウ操作アルゴリズムおよびその指定変更方法については 2 桁年を 4 桁年または世紀へ変換するを参照してください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.