日付型と時刻型を使う
XML Schemaには、日付用の標準データ型がいくつか用意されています。独自の目的にあった型を使うか、標準データ型を元に独自のデータ型を作成して使います。
1. 2時間、12分、45.3秒というように特定の時間数をあらわす内容を含めたい場合は、xsd:timeDurationを使います。
時間数はPnYnMnDTnHnMnSという形式で指定します。
T以降は任意指定の時刻セクションです。それぞれのnには0以上の整数を指定します。これらには、後に続く単位数を設定します(年(Y)、月(M)、日(D)、時(H)、分(M)、秒(S))。将来ではなく過去の基幹を設定するには、先頭にハイフンを追加します。
2. 4:15pmなどのように、毎日繰り返される1日の中の特定の時刻を表す内容を含めたい場合は、xsd:timeを使います。
この時刻は、hh:mm:ss.sssという形式で指定します。任意指定のタイムゾーンインジケータを指定することもできます。(UTCの場合はZ。-hh:mmまたは+hh:mmは、UTCからの差分を示します)
XSDコード <xsd:element name="bedtime" type="xsd:time" />
XMLコード <bedtime> 20:15-05-05:00 </bedtime>
時刻は標準形式で指定します。このbedtime要素の内容は、アメリカの8:15ESTを示します。
3. 1935年6月5日4:15pmというように、歴史上の1点の時間を表す内容を含めたい場合は、xsd:timeInstantを使います。
これは、CCYY-MM-DDThh:mm:ss.sssという形式で指定します。任意指定のタイムゾーンインジケータを指定することもできます。
XSDコード <xsd:element name="birth" type="xsd:timeInstant" />
XMLコード <bedtime> 1999-12-06T18:27:46.2398Z </bedtime>
この要素の内容は、誕生時刻を1999年12月6日午後6時27分46.2398秒(標準時)と設定しています。
4. 1994年4月1日というように、過去のある1日を表す内容は、xsd:dateを指定します。
これは、CCYY-MM-DDという形式で指定しますCCYYには西暦の年数、MMは月、DDには日付を、それぞれ入力します。
XSDコード <xsd:element name="birthdate" type="xsd:date" />
XMLコード <birthdate>1999-12-06</birthdate>
xsd:date型要素は、xsd:timeInstant型要素とよく似ていますが、時刻データがありません。
5. 2007年4月というように、過去のある月を表す内容を含めたい場合は、xsd:monthを使います。
これはCCYY-MMという形式で指定します。
XSDコード <xsd:element name="test_start" type="xsd:month" />
XMLコード <test_start> 2007-04 </test_start>
日にちが不要な場合は、xsd:month型要素を使って年と月だけを指定します。
6. 2000年というように、過去のある年を表す内容を含めたい場合は、xsd:yearを使います。
これは、CCYYという形式で指定します。
XSDコード <xsd:element name="open" type="xsd:year" />
XMLコード <open>1994</open>
日にちが不明な場合は、xsd:year型要素を使って年だけを必須指定します。
7. 1900年代というように、ある正規を表す内容を含めたい場合は、xsd:centuryを使います。
これは、CCという形式で指定します(20世紀の場合は19と設定します)
8. 1月1日というように、年を限定せずに特定の月日を表す内容を含めたい場合は、xsd:recurringDateを使います。
これは、--MM-DDという形式で指定します(先頭のハイフンは、1つ目は年をしないこと、2つ目は区切りを表します)。
XSDコード <xsd:element name="birthday" type="xsd:recurringDate" />
XMLコード <birthday> --03-14 </birthday>
年が不要で月と日が必要な場合は、xsd:recurringDate型要素を使って年と月だけを指定します。
9. 25日というように、年とっつきを限定せずに特定の日を表す内容を含めたい場合は、xsd:recurringDayを使います。
これは---DDという形式で指定します(先頭のハイフンは、1つ目は年をしないこと、2つ目は年とつきを指定しないこと、3つ目は区切りを表します)。
XSDコード <xsd:element name="payday" type="xsd:recurringDay" />
XMLコード <payday> ---14 </payday>
毎月の同じ日にちを設定したい場合は、xsd:recurringDayを使います。
・UTC(Coordinated Universal Time)は、International Time Bureau(Bereau International de l'Heure)によって設定され、グリニッジ標準時と同じ時刻です。これは英国ロンドンの現地時間でもあります。米国の頭部標準時(EST)は、UTC-5です。太平洋沿岸標準時(PST)はUTC-8です。西欧の大部分はUTC+1です。ロシアはUTC+3、日本はUTC+9、オーストラリアはUTC+10です。