日付変換

フォーマット

D [ n ] [ *m ] [ s ] [ fmt [ [ f1,  f2, f3, f4, f5 ] ] ] [ E ] [ L ]

D コードは、入力される日付を従来の形式から内部の格納形式に変換します。 また、内部の日付を従来の形式に変換して出力します。 入力日付を内部形式に変換する場合は、日付を入力する形式が日付変換によって指定されます。 内部の日付を外部形式に変換する場合は、日付の外部形式が日付変換によって定義されます。

D コードで年を指定しなければ、現在の年が用いられます。コードで 2 桁の年を指定する場合、0?29 の年は 2000?2029 年を表し、30?99 の年は 1930?1999 年を表します。

DATE.FORMAT コマンドを使用して、デフォルトの日付形式を表示できます。システム的なデフォルト日付形式は、UV アカウント・ディレクトリーの msg.text ファイルで設定できます。 ファイル・ディクショナリー、または ICONV 関数か OCONV 関数で指定された日付変換が、デフォルト日付形式をオーバーライドする場合を除き、デフォルト日付形式が使用されます。NLS ロケールが有効な場合、ロケールが msg.text ファイル内の値セットをオーバーライドします。

表 1. オーバーライド値
意味 特殊フォーマット・オプション
n

出力する年の桁数を指定する 1 桁の数値 (通常は 1?4) です。 デフォルトは 4 です。

 
*

変換で最初にグループ抽出を行って内部日付を獲得しなければならない場合にフィールドを区分する、1 個の数字以外の文字です。 * にはシステム区切り文字は指定できません。

 
m

アスタリスクを使用する場合に指定が必要な 1 個の数字です。 日付を抽出する際にスキップする、アスタリスク区分のフィールド数を表します。

 
s

出力で日、月、および年を区分する 1 個の数字以外の文字です。s には、システム区切り文字は指定できません。s を指定しない場合、形式オプションによってオーバーライドされない限り、日付は 09 SEP 1996 形式に変換されます。

 
 

NLS ロケールが有効で、区切り文字、または n を指定しない場合、デフォルト日付形式は 09 SEP 1996 になります。また、Time カテゴリーがアクティブなら D_FMT フィールドの変換コードが使用されます。

 
 

NLS ロケールが有効で、s または形式オプションを指定しない場合、日/月/年の順序と区切り文字が DI_FMT フィールドまたは D_FMT フィールドで定義された形式のデフォルトになります。日/月/年の順序が、これらのフィールドで判別できない場合、変換には DEFAULT_DMY_ORDER フィールドで定義された順序が使用されます。s を指定せず、また月が数値である場合は、分離文字は DEFAULT_DMY_SEP フィールドのものが用いられます。

 
fmt

日、曜日、月、年、および元号名を要求できる以降の特殊な形式オプションの中から最大で 5 つを指定します。

 
  Y [ n ] 年だけを要求します (n 桁)。
  YA 中国式の暦年の名前だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの YEARS フィールドを使用します。
  M 月の数値 (1?12) だけを要求します。
  MA 月の名前だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの MONS フィールドを使用します。 月に対しては、大/小文字を組み合わせたものを使用できます。InfoSphere® DataStage® は、ABMONS フィールドを対象に組み合わせを検査します。それ以外では、MONS フィールドを対象にします。
  MB 月の省略名だけを要求します。 NLS ロケールが有効なら NLS.LC.TIME ファイルの ABMONS フィールドを使用し、それ以外は月名の最初の 3 文字を使用します。
  MR ローマ数字の月数 (I?XII) だけを要求します。
  D 月内の日付数値 (1?31) だけを要求します。
  W 週内の日付数値 (1?7 で日曜は 7) だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの DAYS フィールドを使用します。日曜日は 1 です。
  WA 曜日だけを要求します。 NLS ロケールが有効な場合は、形式修飾子 f1、f2 などによって変更されない限り、NLS.LC.TIME ファイル内の DAYS フィールドが使用されます。
  WB 曜日の省略日だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの ABDAYS フィールドを使用します。
  Q 年内の四半期数値 (1?4) だけを要求します。
  J 年内の日付数値 (1?366) だけを要求します。
  N 現在の元号内の年だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの ERA STARTS フィールドを使用します。
  NA 現在の年に対応する元号名だけを要求します。 NLS ロケールが有効なら、NLS.LC.TIME ファイルの ERA NAMES または ERA STARTS フィールドを使用します。
  Z オペレーティング・システムでの名前に基づくタイムゾーン名だけを要求します。

[ f1, f2, f3, f4, f5 ]

   
 

f1f2f3、f4、 および f5 は、形式オプションの形式修飾子です。大括弧は構文の一部で省略はできません。 fmt 内のオプションに個々に対応する最大 5 個の修飾子を指定できます。形式修飾子は定位置パラメーターです。f3 のみを指定する場合、プレースホルダーとして 2 個のコンマを含める必要があります。各形式修飾子は形式オプションに対応しなければなりません。 形式修飾子の値は次のいずれかになります。

 
  n 表示する文字数を指定します。n は、オプションが数値であるかテキストであるかに応じて、形式オプションを変更できます。
   
  • 数値 (D、M、W、Q、J、Y、0) の場合、n は、0 で右揃えにした n 桁になります。
  • テキスト (MA、MB、WA、WB、 YA、N、「text」) の場合、 n は、n スペース内のオプションを左揃えにします。
  A[n] 月形式は英字です。n には、1 から 32 の数で、表示する文字数を指定します。A には、Y、M、W、および N の形式オプションを使用します。
  Z[n] 日、月、または年の先行ゼロを抑止します。n には、1 から 32 の数で、表示する桁数を指定します。Z は、n のように作動しますが、数値オプションの出力をゼロ抑制します。
  `text' 一重引用符または二重引用符で囲まれるテキストは引用符がないものとして扱われ、対応する位置の形式オプションで生成されるテキストのあとに配置されます。 分離文字は無視されます。`text' は、オプションを変更できます。
E

ヨーロッパ式 (日 / 月 / 年) およびアメリカ式 (月 / 日 / 年) の日付形式をトグルで切り替えます。 NLS.LC.TIME ファイルはデフォルトの日 / 月 / 年の順序を指定するために、時間規約を用いる場合には E は無視されます。

 
L

月または曜日の名前で小文字を保持することを指定します。この指定がなければ、ルーチンは名前をすべて大文字に変換します。 NLS.LC.TIME ファイルは名前の大文字化を指定するために、時間規約を使用する場合には L は無視されます。

 

次の表に、同時の使用が可能な形式オプションを示します。

形式オプション
同時使用が可能なオプション
Y
M, MA, D, J, [f1, f2, f3, f4, f5 ]
YA
M, MA, D, [f1, f , f3, f4, f5 ]
M
Y, YA, D, [f1, f2, f3, f4, f5 ]
MA
Y, YA, D, [f1, f2, f3, f4, f5 ]
MB
Y, YA, D, [f1, f2, f3, f4, f5 ]
D
Y, M, [f1, f2, f3, f4, f5 ]
N
Y, M, MA, MB, D, WA [f1, f2, f3, f4, f5 ]
NA
Y, M, MA, MB, D, WA [f1, f2, f3, f4, f5 ]
W
Y, YA, M, MA, D
WA
Y, YA, M, MA, D
WB
Y, YA, M, MA, D
Q
[f1 ]
J
Y, [f1, f2, f3, f4, f5 ]
Z
[f1 ]

各形式修飾子は形式オプションに対応しなければなりません。 次の表に、どの修飾子がどのオプションの変更が可能であるかを示します。

表 2. 修飾子とオプション
修飾子 オプション D オプション M オプション Y オプション J オプション W
A 対応しない 対応する 対応する 対応しない 対応する
n 対応する 対応する 対応する 対応する 対応する
Z 対応する 対応する 対応する 対応する 対応しない
`text' 対応する 対応する 対応する 対応する 対応する

元号定義

ERA_NAMES フィールドには、形式コード %n[string] の前に値を入れることができます。

表 3. 元号定義
フォーマット・コード 説明
%

% の前に来る値は、元号名 (D コードの fmt オプション NA) を指定します。値の次に % がない場合、%1 がデフォルトになります。ルールは以下のとおりです。

 
  %0-%9 % の次の数値 (通常 1 か 2) は、この元号の最初の年を指定します。しばしば、元号の最初の年 (または元号の一部の年) が、修飾文字の前に来ます。そのため、元号は、2 つの値に分けられ、それぞれが同じ元号名を持つことになります。1 つの値は、%1string で終了し、もう 1 つの値は %2 で終了します。
  %+ 元号の数は、年の数と比較して後方に数えます (すなわち、元号の年 1 がユリウス暦 Y であれば、年 2 は Y-1 に対応し、年 3 は Y-2 に対応するというようになります)。
  %- %+ と同じですが、元号の年に負の数を使用します。(例えば、最初の年 Y は -1、Y-1 は -2、y-2 は -3 というようになります。
  %Y 元号の年の数にユリウス暦の数を使用します。
n

単一の数字 (0 から 9) か文字 +、-、 Y になります。これらの文字は元号の計算方法を指定します。

 
ストリング

% に続く任意のストリング が、fmt オプション N で返される年の数値に付加されます。