6.2.4 日付時刻

年,月,日,時,分,秒のパートの組み合わせで構成する型です。パート部分は数値ですが,型全体としては文字列と同じ扱いとなり,左右寄せ,埋め字が任意に指定できます。ただし,パート値として使用できるのは1バイト文字で,文字コードとして2バイト文字コードは使用できません。文字コードとして初期値が指定された場合は,フォーマットの混在型文字列の文字コードに従います。

パートについては,「(3) 日付時刻型」を参照してください。

<この項の構成>
(1) 日付
(2) 時刻
(3) 日付時刻型

(1) 日付

8桁(CCYYMMDD),6桁(YYMMDD)の数字によって,年月日を表します。MMは01~12,DDは01~31の範囲です。

パート間の区切り文字がなく,パート値の前0ありで構成された日付時刻型の一形態です。

CCYYMMDD
最大8桁の数字によって,日付を表す形式です。上位桁が省略された場合は,その桁は0と見なします。次に例を示します。
19980520 (=1998年5月20日)
YYMMDD
最大6桁の数字によって,1951年~2050年の間の日付を表す形式です。上位2桁「YY」が00~50の場合は2000年から2050年までを表し,51~99の場合は1951年から1999年までを表します。上位桁が省略された場合は,その桁は0と見なします。次に例を示します。
010907  (=2001年9月7日)
980520  (=1998年5月20日)

(2) 時刻

最大6桁の数字によって,24時間制の時刻(時分秒)を表します。数字は6桁(hhmmss)です。hhは00~23,mmは00~59,ssは00~59の範囲です。上位桁が省略された場合は,その桁は0と見なします。

パート間の区切り文字がなく,パート値の前0あり,秒小数部なしで構成された日付時刻型の一形態です。次に例を示します。

133000  (=13時30分0秒)

(3) 日付時刻型

日付時刻型は,数値を表すパート,各パート間を区切る文字,ゾーン部から構成されています。秒を表すパートは,小数部を持つことができます。パートの順序構成は任意です。ただし,ゾーン部は型の末尾です。個々のパートは数値で,前0の有無が指定できます。

「CC」を使用しないで「YY」だけを使用したとき,「YY」が00~50の場合は2000年~2050年までを表し,「YY」が51~99の場合は1951年~1999年までを表します。

トランスレータは,通常はパート値の検証をしません。各パートの値の妥当性は実行時オプション「-DTM」が指定された場合だけ実行します。ただし,実行時オプションの指定があっても,日時としての妥当性は検証しません。

日付型,時刻型を含め,日付時刻型には,次の制限事項があります。

日付時刻型のパートを次に示します。

表6-8 日付時刻型のパート

パート意味備考
CCYY西暦年(0~9999)1~4桁
CC西暦年上位2桁(0~99)最大2桁
YY年(西暦年下2桁)(0~99)最大2桁
MM月(1~12)最大2桁
DD日(1~31)最大2桁
hh時(0~23)最大2桁
mm分(0~59)最大2桁
ss秒(0~59,小数部可)整数部最大2桁,小数部最大28桁
注※
日付型の「YYMMDD」形式の場合は,西暦年換算で1951年~2050年になります。

次に例を示します。

20010124  (=2001年1月24日)
'01/01/24  (=2001年1月24日)
2001-01-24T13:20:00+09:30(=2001年1月24日13時20分00秒)

注※
「+09:30」がゾーン部文字列です。