モジュール java.xml
パッケージ javax.xml.datatype

クラスXMLGregorianCalendar

java.lang.Object
javax.xml.datatype.XMLGregorianCalendar
すべての実装されたインタフェース:
Cloneable

public abstract class XMLGregorianCalendar
extends Object
implements Cloneable

W3C XML Schema 1.0日時データ型の表現です。 特にこれらの日時データ型は、XML名前空間"http://www.w3.org/2001/XMLSchema"に定義されているDatatypeConstants.DATETIMEDatatypeConstants.TIMEDatatypeConstants.DATEDatatypeConstants.GYEARMONTHDatatypeConstants.GMONTHDAYDatatypeConstants.GYEARDatatypeConstants.GMONTH、およびDatatypeConstants.GDAYです。 これらのデータ型は標準として「W3C XML Schema 1.0 Part 2」のセクション3.2.7 - 3.2.14に定義されています。

下の表に、XML Schema 1.0の日時データ型フィールドとこのクラスのフィールドの対応づけを定義します。 さらに、「W3C XML Schema 1.0 Part 2」の付録D「ISO 8601 Date and Time Formatsに定義されている日時フィールドの値の制約についてもまとめています。

XML Schema 1.0とJava表現の日時データ型の対応づけ
XML Schema 1.0
データ型
フィールド
Related
XMLGregorianCalendar
Accessor(s)
値の範囲
year getYear() + getEon()または
getEonAndYear()
getYear()は、-(10^9-1)から(10^9)-1の値またはDatatypeConstants.FIELD_UNDEFINED
getEon()は、数十億年単位の大きい桁の年の値。
getEon()は、(10^9)以上または -(10^9)以下の値を格納する。
nullの値はフィールドが定義されていないことを示す。
0年がXMLスキーマの将来のバージョンで有効な字句値となるとXML Schema 1.0 errataに記載されている場合、このクラスではyearフィールドをゼロに設定できる。
そうでない場合は、yearフィールドの値は正誤表および「SO-8601-1988」に記載されているとおりに処理される。 W3C XML Schema 1.0検証は、yearフィールドの値がゼロになることを許可しない。
month getMonth() 1 - 12またはDatatypeConstants.FIELD_UNDEFINED
day getDay() 月と関係なく、最大の範囲は1から31、またはDatatypeConstants.FIELD_UNDEFINED
「W3C XML Schema 1.0 Part 2」の付録Dにmonthフィールドの値に関する基準値の制約についての説明がある。
hour getHour() 0 - 23またはDatatypeConstants.FIELD_UNDEFINED minuteフィールド値とsecondフィールド値がゼロの場合、字句領域でhour値24を設定できる。 ただし、hour値24は値領域では許可されず、「XML Schema Part 2: Datatypes Second Edition」のプリミティブ・データ型に関する3.2に従って次の日の最初のインスタンスの値を表すよう変換される。
minute getMinute() 0 - 59またはDatatypeConstants.FIELD_UNDEFINED
second getSecond() + getMillisecond()/1000または
getSecond() + getFractionalSecond()
0 - 60のgetSecond()またはDatatypeConstants.FIELD_UNDEFINED
(ノート: 60はうるう秒に対してのみ許可される。)
getSecond()が定義されている場合は、getFractionalSecond()に0.0 - 1.0の範囲の無限精度を使用できる。

FractionalSecondはオプションで、定義されていない場合はnullの値となる。
getMillisecond()は、getFractionalSecond()の値の便宜上のミリ秒の精度。
timezone getTimezone() 分数またはDatatypeConstants.FIELD_UNDEFINED -14時間(-14 * 60分)から14時間(14 * 60分)の範囲の値。

上記の表のフィールドにリストされているすべての最大値スペース制約は、このクラスのファクトリ・メソッド、DatatypeFactory、setterメソッド、およびparseメソッドによってチェックされます。 パラメータの値がフィールドの値制限外の場合、あるいは複合値によって無効なXMLGregorianCalendarインスタンスが構成される場合は、IllegalArgumentExceptionがスローされます(たとえば、6月31日が指定された場合などです)。

このクラスでは、次の処理が定義されます。

導入されたバージョン:
1.5
関連項目:
Duration, DatatypeFactory