ストリング・データとしての DateTime

パターン文字のストリングを使用して dateTime 形式を指定できます。

日付または時刻をストリングに変換するとき、変換を誘導するための形式のパターンを適用する必要があります。 この形式パターンを適用して、日付または時刻からストリングに変換したり、ストリングを日付または時間に構文解析したりします。

変換 (例えば、日時からストリングへ) の際に、パターンまたはトークンのセットが対応するソースに置き換わります。 以下の図は、パターンを使用して dateTime ソースをフォーマットして文字ストリング出力を生成する方法について示しています。

この図は、dateTime ソースおよび形式のパターンによって生成される出力ストリングを示しています。

ストリングが構文解析されるとき (例えば、 そのストリングを dateTime に変換するときなど)、パターンまたはトークンのセットが使用されて、 ターゲットの dateTime のどの部分がストリングのどの部分によって表現されているのかを判別します。 以下の図は、これを行う方法を示しています。

この図は、ストリング・データ・ソースおよび形式のパターンによって生成される dateTime 出力を示しています。

構文

式のパターンは、以下のように定義されます。

それぞれの意味は以下のとおりです。
symbol
セット adDeEFGhHIkKmMsSTUwWyYzZ 内の文字。
string
単一引用符で囲まれた、一連の文字。 ストリング内に単一引用符が必要な場合には、2 つの単一引用符 (") を使用します。

dateTime をストリングとしてフォーマットするための文字

以下の表は、dateTime に関連してストリングをフォーマットまたは構文解析するためのパターンに使用できる文字をリストしています。 表の後に、表中の例の詳細について説明する注記があります。

記号 意味 表示内容
a AM または PM のマーク文字 テキスト 入力は、am、AM、pm、PM。出力は、AM または PM
d 日 (1 から 31) 数値 1, 20
dd 日 (01 から 31) 数値 01, 31
D 日 (1 から 366) 数値 3, 80, 100
DD 日 (01 から 366) 数値 03, 80, 366
DDD 日 (001 から 366) 数値 003
e 曜日 (1 から 7)1 数値 2
EEE 曜日1 テキスト Tue
EEEE 曜日1 テキスト Tuesday
F 月単位の曜日 (1 から 5)2 数値 2
G Era テキスト BC または AD
h AM または PM の時間 (1 ~ 12) 数値 6
hh AM または PM の時間 (01 から 12) 数値 06
H 24 時間形式での時刻 (0 から 23)3 数値 7
HH 24 時間形式での時刻 (00 から 23)3 数値 07
I ISO8601 日時 (最大 yyyy-MM-dd'T'HH:mm:ss.SSSZZZ)4 テキスト 2006-10-07T12:06:56.568+01:00
IU ISO8601 日時 (I と同様。ただし時間帯が +00:00 であれば ZZZ の出力は "Z")4 テキスト 2006-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z
k 24 時間形式での時刻 (1 から 24)3 数値 8
k 24 時間形式での時刻 (01 から 24)3 数値 08
K AM または PM の時間 (0 ~ 11) 数値 9
KK AM または PM の時間 (00 から 11) 数値 09
m 数値 4
mm 数値 04
M 数字による月 数値 5, 12
MM 数字による月 数値 05, 12
MMM 名前による月 テキスト Jan、Feb
MMMM 名前による月 テキスト January、February
s 数値 5
ss 数値 05
S デシ秒5 数値 7
SS センチ秒5 数値 70
SSS ミリ秒5 数値 700
SSSS 0.0001 秒5 数値 7000
SSSSS 0.00001 秒5 数値 70000
SSSSSS 0.000001 秒5 数値 700000
T ISO8601 時間 (最大 HH:mm:ss.SSSZZZ)4 テキスト 12:06:56.568+01:00
TU ISO8601 時間 (T と同様。ただし、時間帯の +00:00 は 'Z' に置き換わる)4 テキスト 12:06:56.568+01:00, 15:42:12.000Z
w 週 (年単位)6 数値 7, 53
ww 週 (年単位)6 数値 07, 53
W 週 (月単位)7 数値 2
yy 8 数値 06
yyyy 8 数値 2006
YY 年: 週と共に使用する場合のみ6 数値 06
YYYY 年: 週と共に使用する場合のみ6 数値 2006
zzz 時間帯 (省略名) テキスト GMT
zzzz 時間帯 (完全名) テキスト Greenwich Mean Time
Z 時間帯 (+/-n) テキスト +3
ZZ 時間帯 (+/-nn) テキスト +03
ZZZ 時間帯 (+/-nn:nn) テキスト +03:00
ZZZU 時間帯 (ZZZ と同様。"+00:00" は "Z" に置き換わる) テキスト +03:00, Z
ZZZZ 時間帯 (GMT+/-nn:nn) テキスト GMT+03:00
ZZZZZ 時間帯 (ZZZ と同様。ただしコロンはない) (+/-nnnn) テキスト +0300
' テキストのエスケープ   'ユーザー・テキスト'
" (2 個の単一引用符) エスケープされたテキスト内の単一引用符   'o"clock'

dateTime オブジェクトの表示は、指定するシンボルによって異なります。

注: 上記の表には、以下の注が適用されます。
  1. 「曜日」フィールドは週までの数値オフセットで、物理メッセージ・セット・プロパティー「最初の曜日」の値に応じて変化します。 たとえば、物理メッセージ・セット・プロパティー「最初の曜日」が月曜日に設定されている場合、週の第 3 日は水曜日になります。
  2. 2006 年 7 月 12 日は、7 月の第 2 水曜日なので、 書式制御ストリング yyyy MMMM EEEE F を使用して 2006 July Wednesday 2 と表せます。この形式は、2006 年 7 月の第 2 週の水曜日 (これは 2006 年 7 月 5 日) ではありません。この書式制御ストリングは yyyy MMMM EEEE W です。
  3. 24 時間フィールドが競合する am/pm フィールドとともに指定される場合、結果があいまいになる場合があります。
  4. ISO8601、I および T 日時トークンを参照してください。
  5. 秒の端数は大文字 S によって表されます。長さは入力時のフォーマット記号の数値と暗黙的に一致している必要があります。例えば、ss SSS または ss.SSS などの書式制御ストリングは、秒とミリ秒を表します。しかし、書式制御ストリング ss.sss は (秒の) 反復フィールドを表し、ピリオド (.) の後の値は秒の端数ではなく、2 番目のフィールドと見なされます。 出力は指定された長さに切り捨てられます。
  6. 通常、1 年は週の途中から始まります。その週の日数が物理メッセージ・セット・プロパティー「年間の最初の週の日数」で指定されている値より小さい場合、その週は前の年の最終週と見なされ、この場合、第 1 週は新年の何日か後に開始します。 大きいか等しい場合には、週は新年の最初の週と見なされ、この場合、第 1 週は新年の何日か前に開始します。 例えば、書式制御ストリング YYYY ww EEEE を使用すると、2004 年第 1 週目の月曜日 (2004 01 Monday、ここで「年間の最初の週の日数」= 4 および「最初の曜日」= Monday) は、実際には 2003 年 12 月 29 日になります。 Y を使用すると、曜日 (E) および年単位の週 (w) は必要に応じて調整され、直前の年に入れられます。

    小文字の y シンボルを使用すると、調整は行われず、 年末前後の日付の場合は予測不能な結果になることがあります。 たとえば、ストリング 2002 01 Monday は以下のように形式設定されます。

    • 書式制御ストリング YYYY ww EEEE を使用すると、 2002 年第 1 週の月曜日は、31st December 2001 と正しく解釈されます。
    • 書式制御ストリング yyyy ww EEEE を使用すると、 2002 年第 1 週の月曜日は、30th December 2002 と誤って解釈されます。

    Y は必ず wと一緒に使用してください。w を使用しないで Y を指定すると、年は無視されます。 たとえば、YYYY-MM-dd を指定して 1996-03-01 を形式設定すると、 年の入力は無視され、現在の年が想定されるので、結果は 2006-03-01 になります。

  7. 月の第 1 週と最終週に、前後の月の日が含まれることがあります。 例えば、2006 年 7 月 31 日月曜日を 2006 年 8 月第 1 週の月曜日 として表せます。 この場合は、書式制御ストリング yyyy MM W EEEE を使用して 2006 08 1 Monday と指定します。
  8. 年は特殊ケースとして扱われます。
    • 出力時には、y の個数が 2 の場合は、年は 2 桁に切り捨てられます。例えば、yyyy2006 となる場合、yy06 となります。
    • 入力時には、2 桁の年の場合は、物理メッセージ・セット・プロパティー「2 桁の年の世紀の開始」を使用して、世紀が判別されます。 例えば、「2 桁の年の世紀の開始」53 に設定すると、年が 97 の場合は 1997 になり、年が 52 の場合は 2052 になり、年が 53 の場合は 1953 になります。

ISO8601、I および T 日時トークン

日時値が ISO8601:2000「日時の表記」規格に準拠している場合は、フォーマット・シンボル I および T を使用することを考慮してください。これらは、ISO8601 規格の以下のサブセットと一致します。

フォーマット・シンボル I および T は、単独で使用してください。

以下の表は、出力形式と論理データ・タイプの関連性を示しています。

論理モデル・データ・タイプ ESQL データ・タイプ 出力形式
xsd:dateTime TIMESTAMP または GMTTIMESTAMP yyyy-MM-dd'T'HH:mm:ss.SSSZZZ
xsd:date DATE yyyy-MM-dd
xsd:gYear INTERVAL yyyy
xsd:gYearMonth INTERVAL yyyy-MM
xsd:gMonth INTERVAL --MM
xsd:gmonthDay INTERVAL --MM-dd
xsd:gDay INTERVAL ---dd
xsd:time TIME / GMTTIME 'T'HH:mm:ss.SSSZZZ
注:
  • 入力時は I と T の両方で、協定世界時 (UTC) との時差がゼロであることを示す '+00:00' および 'Z' の両方が受け入れられますが、出力時は常にどちらの場合も '+00:00' が生成されます。出力時に 'Z' を常時生成したい場合には、代わりに IU または TU フォーマット・シンボルを使用してください。
  • ZZZ では、協定世界時 (UTC) との時差がゼロであることを示すために常に '+00:00' が出力されます。出力時に 'Z' を常時生成したい場合には、代わりに ZZZU を使用してください。

出力での入力 UTC 形式の使用

dateTime をストリングとして含む論理タイプ xsd:dateTime または xsd:time のエレメントまたは属性は、Z シンボルまたは時間帯 +00:00 のどちらかを使用することにより、協定世界時 (UTC) を指定できます。 入力の際に、MRM パーサーはそのようなエレメントおよび属性の UTC 形式を記憶します。 出力の際に、エレメントまたは属性の「デフォルトの日時形式」プロパティーを使用することにより、Z または +00:00 を表示するかどうかを指定できます。 またはその代わりに、メッセージ・セット・プロパティー「出力時に入力 UTC 形式を使用」を選択することにより、入力 UTC 形式を保存することもできます。 このプロパティーが選択されている場合には、UTC 形式が出力メッセージに保存され、「日時形式」プロパティーにより暗黙的に示される形式をオーバーライドします。

次の表は、日時形式のいくつかの例を示しています。

形式のパターン 結果
"yyyy.MM.dd 'at' HH:mm:ss ZZZ" 2006.07.10 at 15:08:56 -05:00
"EEE, MMM d, "yy" Wed, July 10, '06
"h:mm a" 8:08 PM
"hh o"clock a, ZZZZ" 09 o'clock AM, GMT+09:00
"K:mm a, ZZZ" 9:34 AM, -05:00
"yyyy.MMMMM.dd hh:mm aaa" 1996.July.10 12:08 PM
関連概念
メッセージのモデル化
メッセージ・モデル
関連タスク
メッセージ・モデルの開発
メッセージ定義ファイルの処理
メッセージ・モデル・オブジェクトの処理
関連資料
メッセージ・モデルの参照情報
メッセージ・モデル・オブジェクトのプロパティー
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:43:12

ad09291_