public abstract class XMLGregorianCalendar extends Object implements Cloneable
W3C XML Schema 1.0日時データ型の表現です。特にこれらの日時データ型は、XML名前空間"http://www.w3.org/2001/XMLSchema"に定義されているDatatypeConstants.DATETIME、DatatypeConstants.TIME、DatatypeConstants.DATE、DatatypeConstants.GYEARMONTH、DatatypeConstants.GMONTHDAY、DatatypeConstants.GYEAR、DatatypeConstants.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 データ型 フィールド |
関連の XMLGregorianCalendar アクセサ |
値の範囲 |
| 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分)の範囲の値。
|
前述の表のフィールドに示されたすべての最大値領域制限は、このクラスのファクトリ・メソッド、@{link DatatypeFactory}、設定メソッド、および構文解析メソッドによってチェックされます。パラメータの値がフィールドの値制限外の場合、あるいは複合値によって無効なXMLGregorianCalendarインスタンスが構成される場合は、IllegalArgumentExceptionがスローされます(たとえば、6月31日が指定された場合などです)。
このクラスでは、次の処理が定義されます。
toString()、DatatypeFactory.newXMLGregorianCalendar(String lexicalRepresentation)の変換GregorianCalendar、toGregorianCalendar(java.util.TimeZone timezone, java.util.Locale aLocale, XMLGregorianCalendar defaults)、DatatypeFactoryの変換compare(XMLGregorianCalendar xmlGregorianCalendar)compare(XMLGregorianCalendar xmlGregorianCalendar)に関して定義されたequals(Object)。Durationインスタンスによる加算演算。
Duration, DatatypeFactory| コンストラクタと説明 |
|---|
XMLGregorianCalendar()
デフォルトの引数なしのコンストラクタです。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
abstract void |
add(Duration duration)
このインスタンスに
durationを追加します。 |
abstract void |
clear()
すべてのフィールドを未定義に設定解除します。
|
abstract Object |
clone()
このオブジェクトのコピーを作成して、返します。
|
abstract int |
compare(XMLGregorianCalendar xmlGregorianCalendar)
「W3C XML Schema 1.0 Part 2」のセクション3.2.7.3「Order relation on dateTime」に定義された部分順序リレーションに従って、W3C XML Schema 1.0日時データ型の2つのインスタンスを比較します。
|
boolean |
equals(Object obj)
このカレンダを指定されたオブジェクトと比較します。
|
abstract int |
getDay()
日または
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
abstract BigInteger |
getEon()
yearのXML Schema 1.0 dataTimeデータ型フィールドの上位コンポーネントを返します。 |
abstract BigInteger |
getEonAndYear()
yearのXML Schema 1.0 dateTimeデータ型フィールドを返します。 |
abstract BigDecimal |
getFractionalSecond()
小数点以下の秒を返します。
|
abstract int |
getHour()
時間または
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
int |
getMillisecond()
getFractionalSecond()のミリ秒の精度を返します。 |
abstract int |
getMinute()
分または
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
abstract int |
getMonth()
月数または
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
abstract int |
getSecond()
秒または
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
abstract int |
getTimezone()
オプションのフィールドが定義されていない場合は、分単位のタイムゾーン・オフセットまたは
DatatypeConstants.FIELD_UNDEFINEDを返します。 |
abstract TimeZone |
getTimeZone(int defaultZoneoffset)
このクラスの
java.util.TimeZoneを返します。 |
abstract QName |
getXMLSchemaType()
このインスタンスが対応するXML Schema日時型の名前を返します。
|
abstract int |
getYear()
yearのXML Schema 1.0 dateTimeデータ型フィールドの下位コンポーネントまたはDatatypeConstants.FIELD_UNDEFINEDを返します。 |
int |
hashCode()
equalsメソッドの定義に一致するハッシュ・コードを返します。
|
abstract boolean |
isValid()
getXMLSchemaType()定数によって、インスタンスを検証します。 |
abstract XMLGregorianCalendar |
normalize()
このインスタンスをUTCに正規化します。
|
abstract void |
reset()
この
XMLGregorianCalendarを元の値にリセットします。 |
abstract void |
setDay(int day)
月の日数を設定します。
|
abstract void |
setFractionalSecond(BigDecimal fractional)
小数点以下の秒を設定します。
|
abstract void |
setHour(int hour)
時間を設定します。
|
abstract void |
setMillisecond(int millisecond)
ミリ秒を設定します。
|
abstract void |
setMinute(int minute)
分を設定します。
|
abstract void |
setMonth(int month)
月を設定します。
|
abstract void |
setSecond(int second)
秒を設定します。
|
void |
setTime(int hour, int minute, int second)
1単位として時間を設定します。
|
void |
setTime(int hour, int minute, int second, BigDecimal fractional)
オプションの無限精度の小数点以下の秒を含む時間を1単位として設定します。
|
void |
setTime(int hour, int minute, int second, int millisecond)
オプションのミリ秒を含めて、時間を1単位として設定します。
|
abstract void |
setTimezone(int offset)
タイムゾーン・オフセットに分数を設定します。
|
abstract void |
setYear(BigInteger year)
XSD
dateTime年フィールドの下位および上位コンポーネントを設定します。 |
abstract void |
setYear(int year)
XSD
dateTime年フィールドの年を設定します。 |
abstract GregorianCalendar |
toGregorianCalendar()
この
XMLGregorianCalendarをGregorianCalendarに変換します。 |
abstract GregorianCalendar |
toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)
提供されたパラメータに従って、この
XMLGregorianCalendarをGregorianCalendarインスタンスに変換します。 |
String |
toString()
この
XMLGregorianCalendar ObjectのString表現を返します。 |
abstract String |
toXMLFormat()
thisインスタンスの字句表現を返します。 |
public XMLGregorianCalendar()
注: XMLGregorianCalendarのインスタンスを構築するには、常にDatatypeFactoryを使用します。このクラス上のコンストラクタは、一貫した状態のオブジェクトを生成するとは保証されておらず、将来削除される可能性があります。
public abstract void clear()
すべてのフィールドを未定義に設定解除します。
すべてのintフィールドをDatatypeConstants.FIELD_UNDEFINEDに、参照フィールドをnullに設定します。
public abstract void reset()
このXMLGregorianCalendarを元の値にリセットします。
XMLGregorianCalendarは、DatatypeFactory.newXMLGregorianCalendar()、DatatypeFactory.newXMLGregorianCalendar(String lexicalRepresentation)、DatatypeFactory.newXMLGregorianCalendar(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, int timezone)、DatatypeFactory.newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone)、DatatypeFactory.newXMLGregorianCalendar(GregorianCalendar cal)、DatatypeFactory.newXMLGregorianCalendarDate(int year, int month, int day, int timezone)、DatatypeFactory.newXMLGregorianCalendarTime(int hours, int minutes, int seconds, int timezone)、DatatypeFactory.newXMLGregorianCalendarTime(int hours, int minutes, int seconds, BigDecimal fractionalSecond, int timezone)、またはDatatypeFactory.newXMLGregorianCalendarTime(int hours, int minutes, int seconds, int milliseconds, int timezone)で作成された場合と同じ値にリセットされます。
reset()は、既存のXMLGregorianCalendarの再使用を許可するように設計されているため、新しいXMLGregorianCalendarの作成に関連するリソースを節約できます。
public abstract void setYear(BigInteger year)
XSD dateTime年フィールドの下位および上位コンポーネントを設定します。
nullのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
year - 値の制約については「日時フィールド対応表の年フィールド」にまとめられている。IllegalArgumentException - yearパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setYear(int year)
XSD dateTime年フィールドの年を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
注: yearパラメータの絶対値が10^9より小さい場合、XSD年フィールドのeonコンポーネントはこのメソッドによってnullに設定されます。
year - 値の制約については「日時フィールド対応表の年フィールド」にまとめられている。年がDatatypeConstants.FIELD_UNDEFINEDの場合、eonはnullに設定される。public abstract void setMonth(int month)
月を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
month - 値の制約については「日時フィールド対応表の月フィールド」にまとめられている。IllegalArgumentException - monthパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setDay(int day)
月の日数を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
day - 値の制約については「日時フィールド対応表の日フィールド」にまとめられている。IllegalArgumentException - dayパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setTimezone(int offset)
タイムゾーン・オフセットに分数を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
offset - 値の制約については「日時フィールド対応表のタイムゾーン・フィールド」にまとめられている。IllegalArgumentException - offsetパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public void setTime(int hour,
int minute,
int second)
1単位として時間を設定します。
hour - 値の制約については「日時フィールド対応表の時間フィールド」にまとめられている。minute - 値の制約については「日時フィールド対応表の分フィールド」にまとめられている。second - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。IllegalArgumentException - 任意のパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。setTime(int, int, int, BigDecimal)public abstract void setHour(int hour)
時間を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
hour - 値の制約については「日時フィールド対応表の時間フィールド」にまとめられている。IllegalArgumentException - hourパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setMinute(int minute)
分を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
minute - 値の制約については「日時フィールド対応表の分フィールド」にまとめられている。IllegalArgumentException - minuteパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setSecond(int second)
秒を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
second - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。IllegalArgumentException - secondパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setMillisecond(int millisecond)
ミリ秒を設定します。
DatatypeConstants.FIELD_UNDEFINEDのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
millisecond - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。IllegalArgumentException - millisecondパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract void setFractionalSecond(BigDecimal fractional)
小数点以下の秒を設定します。
nullのパラメータ値で設定メソッドを呼び出して、このフィールドの設定を解除します。
fractional - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。IllegalArgumentException - fractionalパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public void setTime(int hour,
int minute,
int second,
BigDecimal fractional)
オプションの無限精度の小数点以下の秒を含む時間を1単位として設定します。
hour - 値の制約については「日時フィールド対応表の時間フィールド」にまとめられている。minute - 値の制約については「日時フィールド対応表の分フィールド」にまとめられている。second - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。fractional - nullの値はこのオプションのフィールドが設定されていないことを示す。IllegalArgumentException - 任意のパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public void setTime(int hour,
int minute,
int second,
int millisecond)
オプションのミリ秒を含めて、時間を1単位として設定します。
hour - 値の制約については「日時フィールド対応表の時間フィールド」にまとめられている。minute - 値の制約については「日時フィールド対応表の分フィールド」にまとめられている。second - 値の制約については「日時フィールド対応表の秒フィールド」にまとめられている。millisecond - DatatypeConstants.FIELD_UNDEFINEDの値はこのオプションのフィールドが設定されていないことを示す。IllegalArgumentException - 任意のパラメータが「日時フィールド対応表」に指定したフィールドの値の制限の範囲外の場合。public abstract BigInteger getEon()
yearのXML Schema 1.0 dateTimeデータ型フィールドの上位コンポーネントを返します。このyearフィールドのオプションの部分が定義されていない場合はnullを返します。
この値の制約については、「日時フィールド対応表の年フィールド」にまとめられています。
XMLGregorianCalendarのeon。戻り値は10^9の整数倍。getYear(), getEonAndYear()public abstract int getYear()
yearのXML Schema 1.0 dateTimeデータ型フィールドの下位コンポーネントまたはDatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表の年フィールド」にまとめられています。
XMLGregorianCalendarの年。getEon(), getEonAndYear()public abstract BigInteger getEonAndYear()
yearのXML Schema 1.0 dateTimeデータ型フィールドを返します。
この値の制約については、「日時フィールド対応表の年フィールド」にまとめられています。
public abstract int getMonth()
月数またはDatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表の月フィールド」にまとめられています。
XMLGregorianCalendarの年。public abstract int getDay()
DatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表の日フィールド」にまとめられています。
setDay(int)public abstract int getTimezone()
DatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表のタイムゾーン・フィールド」にまとめられています。
setTimezone(int)public abstract int getHour()
DatatypeConstants.FIELD_UNDEFINEDを返します。このフィールドが定義されていない場合はDatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表の時間フィールド」にまとめられています。
setTime(int, int, int)public abstract int getMinute()
DatatypeConstants.FIELD_UNDEFINEDを返します。
このフィールドが定義されていない場合はDatatypeConstants.FIELD_UNDEFINEDを返します。
この値の制約については、「日時フィールド対応表の分フィールド」にまとめられています。
setTime(int, int, int)public abstract int getSecond()
秒またはDatatypeConstants.FIELD_UNDEFINEDを返します。
このフィールドが定義されていない場合はDatatypeConstants.FIELD_UNDEFINEDを返します。このフィールドが定義されていない場合、getFractionalSecond()およびgetMillisecond()で表されるオプションのxs:dateTime小数点以下の秒フィールドを定義できません。
この値の制約については、「日時フィールド対応表の秒フィールド」にまとめられています。
XMLGregorianCalendarの秒。getFractionalSecond(), getMillisecond(), setTime(int, int, int)public int getMillisecond()
getFractionalSecond()のミリ秒の精度を返します。
このメソッドは、getFractionalSecond()によって返される無限精度の小数点以下の秒の値への簡易アクセス用メソッドです。戻り値は、getFractionalSecond()のミリ秒の値に切り下げられます。getFractionalSecond()がnullを返す場合、このメソッドはDatatypeConstants.FIELD_UNDEFINEDを返す必要があります。
この値の制約については、「日時フィールド対応表の秒フィールド」にまとめられています。
XMLGregorianCalendarのミリ秒。getFractionalSecond(), setTime(int, int, int)public abstract BigDecimal getFractionalSecond()
小数点以下の秒を返します。
このオプション・フィールドが定義されていない場合は、nullを返します。
値の制約については、「日時フィールド対応表の秒フィールド」に詳しく説明しています。
このオプションのフィールドは、getSecond()によって表されるxs:dateTime秒フィールドがDatatypeConstants.FIELD_UNDEFINEDを返さない場合にのみ、定義された値を持つことができます。
XMLGregorianCalendarの小数点以下の秒。getSecond(), setTime(int, int, int, BigDecimal)public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar)
「W3C XML Schema 1.0 Part 2」のセクション3.2.7.3「Order relation on dateTime」に定義された部分順序リレーションに従って、W3C XML Schema 1.0日時データ型の2つのインスタンスを比較します。
このクラスのアクセス用メソッドに対応するxsd:dateTimeデータ型については「日時フィールド対応表」に定義しています。
xmlGregorianCalendar - 比較するXMLGregorianCalendarのインスタンスDatatypeConstants.LESSER、DatatypeConstants.EQUAL、DatatypeConstants.GREATER、またはDatatypeConstants.INDETERMINATEとして指定されたxmlGregorianCalendarとthisXMLGregorianCalendarの関係。NullPointerException - xmlGregorianCalendarがnullである場合。public abstract XMLGregorianCalendar normalize()
このインスタンスをUTCに正規化します。
2000-03-04T23:00:00+03:00は、2000-03-04T20:00:00Zに正規化されます。
「W3C XML Schema 1.0 Part 2のセクション3.2.7.3 (A)」を実装します。
this UTCに正規化されたXMLGregorianCalendar。public boolean equals(Object obj)
このカレンダを指定されたオブジェクトと比較します。引数がnullでなく、このオブジェクトと同じ時点を表すXMLGregorianCalendarオブジェクトである場合にだけ、結果はtrueになります。
equals、クラス: Objectobj - 比較する対象。objがXMLGregorianCalendarのインスタンスであり、compare(XMLGregorianCalendar obj)がDatatypeConstants.EQUALを返す場合はtrue、それ以外の場合はfalse。Object.hashCode()、HashMappublic int hashCode()
equalsメソッドの定義に一致するハッシュ・コードを返します。
hashCode、クラス: ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public abstract String toXMLFormat()
thisインスタンスの字句表現を返します。この形式は「XML Schema 1.0 Part 2」のセクション3.2.[7-14] 1「Lexical Representation」に指定されています。
特定の目的の字句表現形式はgetXMLSchemaType()によって判断します。
XMLGregorianCalendarのString表現としてのXMLIllegalStateException - 設定フィールドの組み合わせが、定義された8つのXML Schema日時データ型のいずれかに一致しない場合。public abstract QName getXMLSchemaType()
このインスタンスが対応するXML Schema日時型の名前を返します。型は設定されるフィールドに基づいて計算されます。
|
XML Schema 1.0日時データ型の必須フィールド。 (すべての日時データ型でタイムゾーンはオプション) |
||||||
|---|---|---|---|---|---|---|
| データ型 | 年 | 月 | 日 | 時間 | 分 | 秒 |
DatatypeConstants.DATETIME |
X | X | X | X | X | X |
DatatypeConstants.DATE |
X | X | X | |||
DatatypeConstants.TIME |
X | X | X | |||
DatatypeConstants.GYEARMONTH |
X | X | ||||
DatatypeConstants.GMONTHDAY |
X | X | ||||
DatatypeConstants.GYEAR |
X | |||||
DatatypeConstants.GMONTH |
X | |||||
DatatypeConstants.GDAY |
X | |||||
DatatypeConstants.DATETIME、DatatypeConstants.TIME、DatatypeConstants.DATE、DatatypeConstants.GYEARMONTH、DatatypeConstants.GMONTHDAY、DatatypeConstants.GYEAR、DatatypeConstants.GMONTH、またはDatatypeConstants.GDAY。IllegalStateException - 設定フィールドの組み合わせが、定義された8つのXML Schema日時データ型のいずれかに一致しない場合。public String toString()
このXMLGregorianCalendar ObjectのString表現を返します。
この結果は、toXMLFormat()によって生成された字句表現です。
toString、クラス: ObjectXMLGregorianCalendarのnull以外の有効なString表現。IllegalStateException - 設定フィールドの組み合わせが、定義された8つのXML Schema日時データ型のいずれかに一致しない場合。toXMLFormat()public abstract boolean isValid()
getXMLSchemaType()定数によって、インスタンスを検証します。public abstract void add(Duration duration)
このインスタンスにdurationを追加します。
この計算は「XML Schema 1.0 Part 2」の付録E「Adding durations to dateTimes」に指定されています。「日時対応表」にXML Schema 1.0 dateTimeフィールドとこのクラスのそれらのフィールドの表現の対応を定義しています。
duration - このXMLGregorianCalendarに追加するDuration。NullPointerException - durationパラメータがnullの場合。public abstract GregorianCalendar toGregorianCalendar()
このXMLGregorianCalendarをGregorianCalendarに変換します。
thisインスタンスに未定義フィールドがある場合、この変換はjava.util.GregorianCalendarの対応するフィールドのデフォルトに依存します。XML Schema 1.0日時データ型とjava.util.GregorianCalendarの主な違いは、Timezone値が日時データ型ではオプションで、java.util.GregorianCalendarでは必須フィールドであることです。デフォルトが決定される方法については、java.util.TimeZone.getDefault()のJavadocを参照してください。TimeZoneインスタンスを明示的に指定するには、toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar)を参照してください。
このクラスからjava.util.GregorianCalendarへのフィールドごとの変換
|
|
|---|---|
java.util.GregorianCalendarフィールド |
javax.xml.datatype.XMLGregorianCalendarフィールド |
ERA |
getEonAndYear().signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD |
YEAR |
getEonAndYear().abs().intValue()* |
MONTH |
getMonth() - DatatypeConstants.JANUARY + Calendar.JANUARY |
DAY_OF_MONTH |
getDay() |
HOUR_OF_DAY |
getHour() |
MINUTE |
getMinute() |
SECOND |
getSecond() |
MILLISECOND |
getFractionalSecond()からミリ秒を取得* |
GregorianCalendar.setTimeZone(TimeZone) |
カスタム・タイムゾーンIDにフォーマットされたgetTimezone() |
変換の実装の一貫性を確保するため、新しいGregorianCalendarは次のようにインスタンス化される必要があります。
timeZone値を使用し、新しいjava.util.GregorianCalendar(timeZone,Locale.getDefault())を作成する。
Calendar.clear()を呼び出して、すべてのGregorianCalendarフィールドを初期化する。GregorianCalendar.setGregorianChange(new Date(Long.MIN_VALUE))を呼び出して、純粋なグレゴリオ暦を取得する。Calendar.set(int,int)メソッドを使用して、フィールドERA、YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE、SECOND、およびMILLISECONDを設定するpublic abstract GregorianCalendar toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)
提供されたパラメータに従って、このXMLGregorianCalendarをGregorianCalendarインスタンスに変換します。
XML Schema 1.0日時データ型には、タイムゾーンIDやサマー・タイムのタイムゾーンIDの概念がないため、この変換処理によって、ユーザーはtimezoneパラメータで明示的にタイムゾーンIDを指定できます。
戻り値のTimeZoneフィールドは次のように計算されます。
timeZoneがnullでない場合、タイムゾーン・フィールドである。this.getTimezone()!= FIELD_UNDEFINEDのとき、this.getTimezone()を使用して、カスタム・タイムゾーンIDでjava.util.TimeZoneを作成する。defaults.getTimezone()!= FIELD_UNDEFINEDのとき、defaults.getTimezone()を使用して、カスタム・タイムゾーンIDでjava.util.TimeZoneを作成する。java.util.TimeZone.getDefault()によって指定されているように、ホストが定義されている場合に、GregorianCalendarデフォルト・タイム・ゾーン値を使用する。変換の実装の一貫性を確保するため、新しいGregorianCalendarは次のようにインスタンス化される必要があります。
Localeパラメータで、新しいjava.util.GregorianCalendar(TimeZone, Locale)を作成する。
Calendar.clear()を呼び出して、すべてのGregorianCalendarフィールドを初期化するGregorianCalendar.setGregorianChange(new Date(Long.MIN_VALUE))を呼び出して、純粋なグレゴリオ暦を取得する。Calendar.set(int,int)メソッドを使用して、フィールドERA、YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE、SECOND、およびMILLISECONDを設定するtimezone - タイムゾーンを指定する。nullは有効な値。aLocale - 明示的なロケールを指定する。値がnullの場合は、デフォルトのGregorianCalendarロケールを使用する。defaults - このインスタンスの対応するフィールドがFIELD_UNDEFINEDまたはnullの場合に使用するデフォルトのフィールド値を指定する。defaultsがnullの場合または指定されたdefaults内のフィールドが定義されていない場合、java.util.GregorianCalendarのデフォルトを使用する。public abstract TimeZone getTimeZone(int defaultZoneoffset)
このクラスのjava.util.TimeZoneを返します。
このインスタンスのタイムゾーン・フィールドが定義されている場合は、ゾーン・オフセットのカスタム・タイムゾーンIDで初期化されたTimeZoneを返します。タイムゾーン・フィールドが定義されていない場合は、渡されたdefaultZoneoffsetを試みます。defaultZoneoffsetがFIELD_UNDEFINEDの場合は、このホストのデフォルトのタイムゾーンを返します。これは、java.util.GregorianCalendarのデフォルトと同じです。
defaultZoneoffset - このゾーン・オフセットがDatatypeConstants.FIELD_UNDEFINEDである場合は、デフォルトのゾーン・オフセット。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.