DATETRAN - 日付を国際フォーマットに変換

DATETRAN 関数は、日付を国際フォーマットに変換します。

日付を国際フォーマットに変換

DATETRAN (indate, '(intype)', '([formatops])', 'lang', outlen, output)

説明

indate

フォーマットを変換する入力日付 (日付フォーマット) です。日付フォーマットには、日付表示オプション付きの文字または数値フォーマット (レガシー日付フォーマット) は使用できません。

intype

入力日付構成要素とその表示順序を指定する次のいずれかの文字列です。文字列は、括弧と一重引用符 (') で囲みます。

下表の入力コンポーネントは 1 つです。

1 つの入力構成要素

説明

'(W)'

曜日構成要素のみ (元のフォーマットは「W」のみ)

'(M)' 

月構成要素のみ (元のフォーマットは「M」のみ)

下表は、入力構成要素が 2 つの場合を示します。

2 つの入力構成要素

説明

'(YYM)'

4 桁の西暦年、月

'(YM)'

2 桁の西暦年、月

'(MYY)'

月、4 桁の西暦年

'(MY)'

月、2 桁の西暦年

下表は、入力構成要素が 3 つの場合を示します。

3 つの入力構成要素

説明

'(YYMD)'

4 桁の西暦年、月、日

'(YMD)' 

2 桁の西暦年、月、日

'(DMYY)'

日、月、4 桁の西暦年

'(DMY)'

日、月、2 桁の西暦年

'(MDYY)'

月、日、4 桁の西暦年

'(MDY)'

月、日、2 桁の西暦年

'(MD)'

月、日 (年月日の日付から抽出。西暦年は無視)

'(DM)'

日、月 (年月日の日付から抽出。西暦年は無視)

formatops

0 (ゼロ) 以上のフォーマットオプションを表す文字列です。文字列は括弧および一重引用符 (') で囲みます。括弧と引用符 (') は、フォーマットオプションを指定しない場合でも必要です。フォーマットオプションは、次のいずれかになります。

  • 月または日の数値の先頭の 0 (ゼロ) を非表示にするオプション。

    注意:0 (ゼロ) を非表示にすると、先頭の 0 (ゼロ) がブランクに置換されます。

  • 月または日構成要素を完全な名前または略名に変換するオプション。変換先の文字は、すべて大文字に指定することも、言語のデフォルト値 (先頭大文字、またはすべて小文字) に指定することも可能です。
  • 日付の区切り文字オプション、および日付にカンマ (,) を付けるオプション。

下表は、月または日の数値の先頭の 0 (ゼロ) を非表示にする有効なオプションを示しています。先頭の 0 (ゼロ) はブランクで置換されます。

フォーマットオプション

説明

m

月部分の 0 (ゼロ) を省略 (1 月から 9 月を 01 から 09 ではなく 1 から 9 で表示) します。

d

1 桁の日を 01 から 09 ではなく、1 から 9 として表示します。

dp

1 桁の日を 01 から 09 ではなく、1 から 9 として表示します。数値の後にはピリオド (.) が追加されます。

do

1 桁の日を 1 から 9 として表示します。英語 (言語コード EN) でのみ、数値の後に序数を表す接尾語 (st、nd、rd、th) が追加されます。

下表は、有効な月名および曜日名の変換オプションを示しています。

フォーマットオプション

説明

T

月の略名がピリオド (.) なしで表示されます。すべて大文字です。

TR

完全な月名が表示されます。すべて大文字です。

Tp

月の略名が末尾にピリオド (.) を伴って表示されます。すべて大文字です。

t

月の略名がピリオド (.) なしで表示されます。言語コードによって、すべて小文字または先頭大文字で表示されます。

tr

完全な月名が表示されます。言語コードによって、すべて小文字または先頭大文字で表示されます。

tp

月の略名が末尾にピリオド (.) を伴って表示されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

W

日付の先頭に曜日の略名が表示されます。すべて大文字で、ピリオド (.) は使用されません。

WR

日付の先頭に完全な曜日名が表示されます。すべて大文字です。

Wp

日付の先頭に曜日の略名が表示されます。すべて大文字で、末尾にはピリオド (.) が追加されます。

w

日付の先頭に曜日の略名が区切り記号なしで表示されます。ピリオド (.) は使用されません。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

wr

日付の先頭に完全な曜日名が表示されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

wp

日付先頭に曜日の略名が表示されます。末尾にはピリオド (.) が追加されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

X

日付の末尾に曜日の略名が表示されます。すべて大文字で、ピリオド (.) は使用されません。

XR

日付の末尾に完全な曜日名が表示されます。すべて大文字です。

Xp

日付の末尾に曜日の略名が表示されます。すべて大文字で、末尾にはピリオド (.) が追加されます。

x

日付の末尾に曜日の略名がピリオド (.) なしで表示されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

xr

日付の末尾に完全な曜日名が表示されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

xp

日付の末尾に曜日の略名がピリオド (.) を伴って表示されます。名前の大文字、小文字は選択する言語のデフォルト値が使用されます (例、フランス語およびスペイン語ではすべて小文字、英語およびドイツ語では先頭大文字)。

下表は、有効な日付区切り文字オプションを示しています。

フォーマットオプション

説明

B

構成要素の区切り文字にブランクを 1 つ使用します。このオプションは、月名および曜日が文字に変換されている場合、またはカンマ (,) が使用されている場合のデフォルト値です。

.

構成要素の区切り文字にピリオド (.) を使用します。

-

構成要素の区切り文字にマイナス記号 (-) を使用します。このオプションは、ブランクがデフォルトの区切り文字として使用できない場合のデフォルト値です。

/

構成要素の区切り文字にスラッシュ (/) を使用します。

|

構成要素の区切り文字を省略します。

K

構成要素の区切り文字に適切なアジア言語の文字を使用します。

c

月の末尾にカンマ (,) を追加します (T、Tp、TR、t、tp、tr の後ろに追加)。

日の末尾にカンマ (,) とブランクを 1 つずつ追加します (W、Wp、WR、w、wp、wr の後ろに追加)。

日の前にカンマ (,) とブランクを 1 つずつ追加します (X、XR、x、xr の後ろに追加)。

e

スペイン語やポルトガル語の「de」または「DE」を日と月の間、および月と年の間に表示します。大文字と小文字の使用は、月名に一致します。月名が大文字の場合は「DE」、小文字の場合は「de」が表示されます。DMY、DMYY、MY、MYY フォーマットで役立ちます。

D

日と指定された区切り文字の間にカンマ (,) を挿入します。

Y

年と指定された区切り文字の間にカンマ (,) を挿入します。

lang

日付が変換される言語の 2 バイトの標準 ISO コードです。文字は一重引用符 (') で囲みます。以下は、有効な言語コードです。

  • 'AR' アラビア語
  • 'CS' チェコ語
  • 'DA' デンマーク語
  • 'DE' ドイツ語
  • 'EN' 英語
  • 'ES' スペイン語
  • 'FI' フィンランド語
  • 'FR' フランス語
  • 'EL' ギリシャ語
  • 'IW' ヘブライ語
  • 'IT' イタリア語
  • 'JA' 日本語
  • 'KO' 韓国語
  • 'LT' リトアニア語
  • 'NL' オランダ語
  • 'NO' ノルウェー語
  • 'PO' ポーランド語
  • 'PT' ポルトガル語
  • 'RU' ロシア語
  • 'SV' スウェーデン語
  • 'TH' タイ語
  • 'TR' トルコ語
  • 'TW' 中国語 (繁体字)
  • 'ZH' 中国語 (簡体字)
outlen

数値

出力フィールドの長さをバイト数で指定します。フィールドの長さが値よりも小さい場合は、すべてがブランクの結果が返されます。長さが大きすぎる場合は、右側にブランクが挿入されます。

output

文字

変換後の日付を含むフィールド名、またはフォーマットです。フォーマットは一重引用符 (') で囲みます。

DATETRAN 関数使用上の注意

  • 出力フィールドはタイプ AnV ではなくタイプ A である必要がありますが、結果が可変長タイプを含む可能性もあります。月名および曜日名の長さは可変であり、さらにこれらを数字で表し、0 (ゼロ) を省略するオプションを指定すれば、長さは 1 バイトまたは 2 バイトになります。使用されないバイトの部分には、ブランクが挿入されます。
  • 入力が無効または不整合の場合は、0 (ゼロ) が出力されます。データが欠落している場合はブランクが出力されます。
  • 基準日 (1900-12-31 および 1900-12、または 1901-01) は、DATEDISPLAY 設定が ON である状態として処理され、自動的にはブランクとして表示されません。基準日 (内部整数値 0 を含む) の出力を非表示にするには、DATETRAN 関数を呼び出す前に 0 (ゼロ) をテストします。以下はその例です。
    RESULT/A40 = IF DATE EQ 0 THEN ' ' ELSE
                    DATETRAN (DATE, '(YYMD)', '(.t)', 'FR', 40, 'A40');
  • 変換後の日付構成要素の有効値は、「DTLNGlng」という名前のファイルに含まれています。lng は、言語を指定する 3 バイトのコードです。これらのファイルは、日付の変換先の各言語からアクセス可能である必要があります。
  • これらの NLS 文字を正しく表示するには、ibi™ WebFOCUS® Reporting Server および ibi™ WebFOCUS® App Studio がともに正しいコードページで構成されている必要があります。
  • ターミナルエミュレータプログラムを使用する場合、変換後の日付の文字列およびアクセント記号を表示可能なコードページに設定しなければなりません。ヨーロッパ言語とアジア言語に変換された日付は、同時に表示することができない場合があります。同様に、変換された日付を印刷する場合は、目的の文字列を印刷する機能を備えたプリンタが必要です。
  • DATETRAN 関数は、ダイアログマネージャでは使用できません。

DATETRAN 関数の使用

次のリクエストは、曜日を出力します。大文字と小文字は、指定の言語のデフォルト設定に従います。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20051003;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT1A/A8=DATETRAN(DATEW, '(W)', '(wr)', 'EN', 8 , 'A8') ;
OUT1B/A8=DATETRAN(DATEW2, '(W)', '(wr)', 'EN', 8 , 'A8') ;
OUT1C/A8=DATETRAN(DATEW, '(W)', '(wr)', 'ES', 8 , 'A8') ;
OUT1D/A8=DATETRAN(DATEW2, '(W)', '(wr)', 'ES', 8 , 'A8') ;
OUT1E/A8=DATETRAN(DATEW, '(W)', '(wr)', 'FR', 8 , 'A8') ;
OUT1F/A8=DATETRAN(DATEW2, '(W)', '(wr)', 'FR', 8 , 'A8') ;
OUT1G/A8=DATETRAN(DATEW, '(W)', '(wr)', 'DE', 8 , 'A8') ;
OUT1H/A8=DATETRAN(DATEW2, '(W)', '(wr)', 'DE', 8 , 'A8') ;
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT wr"
""
"Full day of week name at beginning of date, default case (wr)"
"English / Spanish / French / German"
""
SUM OUT1A AS '' OUT1B AS '' TRANSDATE NOPRINT
OVER OUT1C AS '' OUT1D AS ''
OVER OUT1E AS '' OUT1F AS ''
OVER OUT1G AS '' OUT1H AS ''ON TABLE HOLD
FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
ON TABLE SET STYLE *
GRID=OFF, $
END

出力結果は次のとおりです。

次のリクエストは、ブランクで区切られ、月名が英語の略名で表される日付を出力します。日付先頭の 0 (ゼロ) は非表示になっており、数字の後に接尾語が追加されています。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20050302;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT2A/A15=DATETRAN(DATEYYMD,  '(MDYY)', '(Btdo)', 'EN', 15, 'A15') ;
OUT2B/A15=DATETRAN(DATEYYMD2, '(MDYY)', '(Btdo)', 'EN', 15, 'A15') ;
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT Btdo"
""
"Blank-delimited (B)"
"Abbreviated month name, default case (t)"
"Zero-suppress day number, end with suffix (do)"
"English"
""
SUM OUT2A AS '' OUT2B AS '' TRANSDATE NOPRINTON
TABLE HOLD FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
END

出力結果は次のとおりです。

次のリクエストは、ブランクで区切られ、月名がドイツ語の略名で表される日付を出力します。日付先頭の 0 (ゼロ) は非表示になっており、数字の後にピリオド (.) が追加されています。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20050302;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT3A/A12=DATETRAN(DATEYYMD,  '(DMYY)', '(Btdp)', 'DE', 12, 'A12');
OUT3B/A12=DATETRAN(DATEYYMD2, '(DMYY)', '(Btdp)', 'DE', 12, 'A12');
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT Btdp"
""
"Blank-delimited (B)"
"Abbreviated month name, default case (t)"
"Zero-suppress day number, end with period (dp)"
"German"
""
SUM OUT3A AS '' OUT3B AS '' TRANSDATE NOPRINTON
TABLE HOLD FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
END

出力結果は次のとおりです。

次のリクエストはブランクを区切り文字とした日付を、フランス語の完全な曜日名および月名から (フランス語のデフォルトである) 小文字で表示します。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20050302;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT4A/A30 = DATETRAN(DATEYYMD,  '(DMYY)', '(Bwrtr)', 'FR', 30, 'A30');
OUT4B/A30 = DATETRAN(DATEYYMD2, '(DMYY)', '(Bwrtr)', 'FR', 30, 'A30');
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT Bwrtr"
""
"Blank-delimited (B)"
"Full day of week name at beginning of date, default case (wr)"
"Full month name, default case (tr)"
"English"
""
SUM OUT4A AS '' OUT4B AS '' TRANSDATE NOPRINTON
TABLE HOLD FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
END

出力結果は次のとおりです。

次のリクエストは、ブランクで区切られたスペイン語の日付を出力します。日付は小文字の完全な曜日名とカンマ (,) で開始し、日の数値と月名、月名と西暦年の間に「de」が挿入されます。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20050302;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT5A/A30=DATETRAN(DATEYYMD,  '(DMYY)', '(Bwrctrde)', 'ES', 30, 'A30');
OUT5B/A30=DATETRAN(DATEYYMD2, '(DMYY)', '(Bwrctrde)', 'ES', 30, 'A30');
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT Bwrctrde"
""
"Blank-delimited (B)"
"Full day of week name at beginning of date, default case (wr)"
"Comma after day name (c)"
"Full month name, default case (tr)"
"Zero-suppress day number (d)"
"de between day and month and between month and year (e)"
"Spanish"
""
SUM OUT5A AS '' OUT5B AS '' TRANSDATE NOPRINTON
TABLE HOLD FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
END

出力結果は次のとおりです。

次のリクエストは日付を日本語の完全な月名をデフォルトの表記で表示します。0 (ゼロ) は非表示です。

DEFINE FILE VIDEOTRK
TRANS1/YYMD=20050104;
TRANS2/YYMD=20050302;
DATEW/W=TRANS1     ;
DATEW2/W=TRANS2    ;
DATEYYMD/YYMDW=TRANS1    ;
DATEYYMD2/YYMDW=TRANS2   ;
OUT6A/A30=DATETRAN(DATEYYMD , '(YYMD)', '(Ktrd)', 'JA', 30, 'A30');
OUT6B/A30=DATETRAN(DATEYYMD2, '(YYMD)', '(Ktrd)', 'JA', 30, 'A30');
END
TABLE FILE VIDEOTRK
HEADING
"FORMAT Ktrd"
""
"Japanese characters (K in conjunction with the language code JA)"
"Full month name at beginning of date, default case (tr)"
"Zero-suppress day number (d)"
"Japanese"
""
SUM OUT6A AS '' OUT6B AS '' TRANSDATE NOPRINTON
TABLE HOLD FORMAT HTML 
ON TABLE SET PAGE-NUM OFF
END

出力結果は次のとおりです。