パターン文字のストリングを使用して dateTime 形式を指定できます。
日付または時刻をストリングに変換するとき、変換を誘導するための形式のパターンを適用する必要があります。 この形式パターンを適用して、日付または時刻からストリングに変換したり、ストリングを日付または時間に構文解析したりします。
変換 (例えば、日時からストリングへ) の際に、パターンまたはトークンのセットが対応するソースに置き換わります。 以下の図は、パターンを使用して dateTime ソースをフォーマットして文字ストリング出力を生成する方法について示しています。
ストリングが構文解析されるとき (例えば、 そのストリングを dateTime に変換するときなど)、パターンまたはトークンのセットが使用されて、 ターゲットの dateTime のどの部分がストリングのどの部分によって表現されているのかを判別します。 以下の図は、これを行う方法を示しています。
式のパターンは、以下のように定義されます。
.------------. V | >>---+-symbol-+-+---------------------------------------------->< '-string-'
以下の表は、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 |
kk | 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 | 時間帯 (省略名)9 | テキスト | EST |
zzzz | 時間帯 (完全名) | テキスト | 東部標準時 |
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 オブジェクトの表示は、指定するシンボルによって異なります。
小文字の y シンボルを使用すると、調整は行われず、 年末前後の日付の場合は予測不能な結果になることがあります。 例えば、ストリング 2002 01 Monday は以下のように形式設定されます。
Y と w のみを一緒に使用します。 w を指定しない場合は、y を使用します。
この問題を避けるために、zzzz オプションは正しく定義されている名前と併用してください。例えば、Europe/London、Asia/Dhaka、または America/Los_Angeles などです。
日時値が 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 |
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 |