FORMAT 文節は、暗黙の PICTURE 文節を 定義します。 日付項目または時刻項目を容易に記述できる PICTURE 文字ストリングは 1 つもないにもかかわらず、ある種の形式においては定義に近いものが存在します。 たとえば、FORMAT '%y,%m,%d' が指定されている日付項目は PICTURE 99/99/99 に類似します。 ここで、'/' PICTURE 記号は ',' に置き換えられます。
LOCALE 句は、日付、時刻、タイム・スタンプ項目を各文化圏に適切な形式で指定します。
リテラル-2 を指定せずに LOCALE 句を指定すると、日付項目および時刻項目に使用される形式および分離文字は完全にロケールに基づくものとなります。
リテラル-2 を指定した上で LOCALE 句を指定すると、項目の形式はリテラル-2 から判別されますが、変換指定はロケールに基づく項目に置き換えられます。
LOCALE OF 特殊レジスターは、指定したデータ項目に関連付けられてい るロケール簡略名と等価の値を戻します。 そのデータ項目に関連付けられているロケールがない場合は、キーワード COBOL が戻されます。 LOCALE OF 特殊レジスターを変更することはできません。 また、これを指定できるのは、ロケール簡略名が使用可能な PROCEDURE DIVISION においてだけです。
日時データ項目は LOCALE OF 特殊レジスターを使用する式の中で使用することができます。
DDS では、日付データ・タイプの形式は DATFMT パラメーターで指定します。 *MDY および *ISO も有効な DATFMT パラメーターです。 DATSEP キーワードは、月、日、および年の値の間の分離文字として使用される 1 文字の値を指定するために DATFMT キーワードとともに使用します。 表 10 に、DATFMT パラメーター、それぞれの形式で使用可能な DDS 日付分離文字、およびこれらのパラメーターと等価の COBOL 形式リテラルの完全なリストを示します。
DDS では、時刻データ・タイプの形式は TIMFMT パラメーターで指定します。 *HMS
および *ISO も有効な TIMFMT パラメーターです。 TIMSEP
キーワードは、時、分、および秒の値の間の分離文字として使用される 1
文字の値を指定するために TIMFMT キーワードとともに使用します。 表 11 に、TIMFMT パラメーター、それぞれの形式で使用可能な DDS
時刻分離文字、およびこれらのパラメーターと等価の COBOL
形式リテラルの完全なリストを示します。
表 10. DDS 日付データ・タイプおよびそれらと等価の ILE COBOL の形式
i5/OS形式 | COBOL が生成する形式 | 内容 | 形式 | 有効な 分離文字 | 長さ |
---|---|---|---|---|---|
*MDY | %m/%d/%y | 月 / 日 / 年 | mm/dd/yy | /-.,スペース | 8 |
*DMY | %d/%m/%y | 日 / 月 / 年 | dd/mm/yy | /-.,スペース | 8 |
*YMD | %y/%m/%d | 年 / 月 / 日 | yy/mm/dd | /-.,スペース | 8 |
*JUL | %y/%j | ユリウス | yy/ddd | /-.,スペース | 6 |
*ISO | @Y-%m-%d | ISO (国際標準化機構) | yyyy-mm-dd | - | 10 |
*USA | %m/%d/@Y | IBM USA 標準規格 | mm/dd/yyyy | / | 10 |
*EUR | %d.%m.@Y | IBM 欧州標準規格 | dd.mm.yyyy | . | 10 |
*JIS | @Y-%m-%d | JIS (日本工業規格) 西暦 | yyyy-mm-dd | - | 10 |
表 11. DDS 時刻データ・タイプおよびそれらと等価の ILE COBOL の形式
i5/OS形式 | COBOL が生成する形式 | 内容 | 形式 | 有効な 分離文字 | 長さ |
---|---|---|---|---|---|
*HMS | %H:%M:%S | 時 : 分 : 秒 | hh:mm:ss | :.,スペース | 8 |
*ISO | %H.%M.%S | ISO (国際標準化機構) | hh.mm.ss | . | 8 |
*USA | %I:%M @p | IBM USA 標準規格。 AM および PM は、大文字小文字を任意に混合させることができます。 | hh:mm AM または hh:mm PM | : | 8 |
*EUR | %H.%M.%S | IBM 欧州標準規格 | hh.mm.ss | . | 8 |
*JIS | %H:%M:%S | JIS (日本工業規格) 西暦 | hh:mm:ss | : | 8 |
PROCEDURE DIVISION の FORMAT OF 句は、FORMAT OF 特殊レジスターと呼ばれる 暗黙的な特殊レジスターを作成します。このレジスターの内容は、ID によって参照 されるデータ項目の FORMAT リテラルと等価です。 FORMAT OF 特殊レジスターは、日時クラスのデータ項目に対してのみ指定することができます。 この特殊レジスターの長さは、当該のデータ項目用の FORMAT 句内で指定されるリテラルまたはロケールによって決まります。
FORMAT OF 特殊レジスターには次のような暗黙の定義が入っています。
USAGE DISPLAY, PICTURE X(n) where n equals the number of bytes of the implicit or explicit FORMAT literal.
例として、以下の日付データ項目 date2 用のデータ記述記入項目について考えてみます。
05 date2 FORMAT DATE IS '%d,%m,%y'.
以下の MOVE ステートメントは、組み込み関数 CONVERT-DATE-TIME を使用して日付データ項目 date3 を日付データ項目 date2 の形式に変換します。 FORMAT OF 句は、その内容が %d,%m,%y となる暗黙特殊レジスターを作成します。
MOVE FUNCTION CONVERT-DATE-TIME(date3, DATE, FORMAT OF date2) TO alpha-num-date.
この例では、特殊レジスターの長さは 8 文字です。
次の規則が適用されます。
+------------------------------End of IBM 拡張-------------------------------+