以下に、パターン文字のストリングを使用して dateTime 形式を指定する方法に関する情報を記載します。
日付または時刻をストリングに変換するとき、変換を誘導するための形式のパターンを適用できます。 これが適用されるのは、日付または時刻からストリングに変換する場合、 またはストリングを日付または時間に構文解析する場合です。
フォーマット (例えば、日時からストリングへ) の際に、パターンまたはトークンのセットが対応するソースに置き換わります。 図 1 は、これが適用される方法を表現しています。
ストリングが構文解析されるとき (例えば、 それを dateTime に変換するときなど)、パターンまたはトークンのセットが使用されて、 ターゲットの dateTime のどの部分がストリングのどの部分によって表現されているのかを判別します。 図 2 は、これが適用される方法を表現しています。
式のパターンは、以下のように定義されます。
.--------------.
| .- -. |
V 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) | 数値 | 26 |
EEE | 曜日 | テキスト | Tue |
EEEE | 曜日 | テキスト | Tuesday |
F | 月単位の曜日 (1-5) | 数値 | 2 (7 月の第 2 水曜日を示す)3 |
G | Era | テキスト | BC または AD |
h | AM または PM の時間 (1 ~ 12) | 数値 | 6 |
hh | AM または PM の時間 (01 から 12) | 数値 | 06 |
H | 24 時間形式での時刻 (0 から 23) | 数値 | 77 |
HH | 24 時間形式での時刻 (00 から 23) | 数値 | 077 |
I | ISO8601 日時 (最大 yyyy-MM-dd'T'HH:mm:ss.SSSZZZ) | テキスト | 2004-10-07T12:06:56.568+01:005 |
IU | ISO8601 日時 (上記と同様。ただし、時間帯が +00:00 であれば ZZZ の出力は "Z") | テキスト | 2004-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z 5 |
k | 24 時間形式での時刻 (1 から 24) | 数値 | 87 |
k | 24 時間形式での時刻 (01 から 24) | 数値 | 087 |
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 | デシ秒 | 数値 | 78 |
SS | センチ秒 | 数値 | 708 |
SSS | ミリ秒 | 数値 | 7008 |
SSSS | 1/10,000 秒 | 数値 | 70008 |
SSSSS | 1/100,000 秒 | 数値 | 700008 |
SSSSSS | 1/1,000,000 秒 | 数値 | 7000008 |
T | ISO8601 時間 (最大 HH:mm:ss.SSSZZZ) | テキスト | 12:06:56.568+01:005 |
TU | ISO8601 時間 (上記と同様。ただし、時間帯の +00:00 は 'Z' に置き換わる) | テキスト | 12:06:56.568+01:00, 15:42:12.000Z5 |
w | 週 (年単位) | 数値 | 7、532 |
ww | 週 (年単位) | 数値 | 07、532 |
W | 週 (月単位) | 数値 | 24 |
yy | 年 | 数値 | 961 |
yyyy | 年 | 数値 | 19961 |
YY | 年: 週と共に使用する場合のみ | 数値 | 962 |
YYYY | 年: 週と共に使用する場合のみ | 数値 | 19962 |
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 オブジェクトの表示は、以下のように、指定するシンボルによって異なります。
y シンボルを使用すると、調整は行われず、年末前後の日付の場合は予測不能な結果になることがあります。例えば、ストリング「2005 01 Monday」が以下のように形式設定される場合、
日時値が ISO8601:2000「日時の表記」規格に準拠している場合は、フォーマット・シンボル I および T が使用可能かどうかを考慮してください。これらは、ISO8601 規格の特に以下のサブセットと一致します。
以下のシンボルは単独でのみ使用する必要があります。
出力では、論理データ・タイプに応じて以下の形式が適用されます。
論理 MRM データ・タイプ | 論理 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 形式を記憶します。 出力の際に、エレメントまたは属性の dateTime 形式プロパティーを使用することにより、 Z または +00:00 を表示するかどうかを指定できます。 またはその代わりに、メッセージ・セット・プロパティー「出力時に入力 UTC 形式を使用」にチェックを付けることにより、入力 UTC 形式を保存することもできます。 このプロパティーにチェック・マークが付いている場合には、UTC 形式が出力メッセージに保存され、「日時形式」プロパティーにより暗黙的に示される形式をオーバーライドします。
次の表は、dateTime 形式のいくつかの例を示しています。
形式のパターン | 結果 |
---|---|
"yyyy.MM.dd'at'HH:mm:ss ZZZ" | 1996.07.10 at 15:08:56 -05:00 |
EEE, MMM d, "yy" | Wed, July 10, '96 |
"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 |