站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JavaTM 2 Platform Standard Edition 5.0 API 规范中文版

XMLGregorianCalendar (Java 2 Platform SE 5.0) - JavaTM 2 Platform Standard Edition 5.0 API 规范中文版

JavaTM 2 Platform
Standard Ed. 5.0

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" 中定义的 dateTimetimedategYearMonthgMonthDaygYear gMonthgDay。在 W3C XML Schema 1.0 第二部分 3.2.7-14 小节中以标准形式定义了这些数据类型。

下表定义了 XML Schema 1.0 日期/时间数据类型字段和此类的字段之间的映射关系。还总结了 W3C XML Schema 1.0 第二部分的附录 D ISO 8601 Date and Time Formats 中定义的日期和时间字段的值约束。

XML Schema 1.0 和 Java 表示形式之间的日期/时间数据类型字段映射关系
XML Schema 1.0
数据类型
字段
相关的
XMLGregorianCalendar
Accessor(s)
值范围
year getYear() + getEon()
getEonAndYear()
getYear() 是 -(10^9-1) 到 (10^9)-1 或 DatatypeConstants.FIELD_UNDEFINED 之间的值。
getEon() 是以十亿年为单位的高顺序年值。
getEon() 是大于或等于 (10^9) 或者小于或等于 -(10^9) 的值。null 值指示字段未定义。
XML Schema 1.0 勘误表说明 year 零是 XML Schema 以后版本中的一个有效词汇值,那么此类允许将 year 字段设置为零。否则,完全按照勘误表和 [ISO-8601-1988] 中的描述处理 year 字段值。注意,W3C XML Schema 1.0 验证不允许 year 字段具有零值。
month getMonth() 1 到 12 或 DatatypeConstants.FIELD_UNDEFINED
day getDay() 与 month 无关,最大范围是 1 到 31 或 DatatypeConstants.FIELD_UNDEFINED
相对于 month 字段的值说明的标准化值约束位于 W3C XML Schema 1.0 第二部分附录 D 中。
hour getHour() 0 到 24 或 DatatypeConstants.FIELD_UNDEFINED。对于值 24,根据 XML Schema 勘误表,minute 和 second 字段必须为零。
minute getMinute() 0 到 59 或 DatatypeConstants.FIELD_UNDEFINED
second getSecond() + getMillisecond()/1000 或
getSecond() + getFractionalSecond()
getSecond() 范围是 0 到 60 或 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、设置方法和解析方法检查上面表中为字段列出的所有最大值空间约束。若参数的值超出字段的值约束,或者如果复合值组成一个无效 XMLGregorianCalendar 实例(例如,如果指定六月的第 31 日),则抛出 IllegalArgumentException

为此类定义以下操作:

从以下版本开始:
1.5
另请参见:
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 第二部分 3.2.7.3 小节 Order relation on dateTime 中定义的部分顺序关系,比较 W3C XML Schema 1.0 日期/时间数据类型的两个实例。
 boolean equals(Object obj)
          指示参数 obj 是否“等于”此参数。
abstract  int getDay()
          返回月中的日或 DatatypeConstants.FIELD_UNDEFINED
abstract  BigInteger getEon()
          返回 XML Schema 1.0 日期时间数据类型字段的高顺序组件,用于 year
abstract  BigInteger getEonAndYear()
          返回 year XML Schema 1.0 的日期时间数据类型字段。
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()
          返回 yearDatatypeConstants.FIELD_UNDEFINED XML Schema 1.0 日期时间数据类型字段的低顺序组件。
 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)
          将时间设置为一个单元。
 void setTime(int hour, int minute, int second, BigDecimal fractional)
          将时间设置为一个单元,包括可选无限精度小数秒。
 void setTime(int hour, int minute, int second, int millisecond)
          将时间设置为一个单元,包括可选的毫秒。
abstract  void setTimezone(int offset)
          设置时区偏移量中的分钟数。
abstract  void setYear(BigInteger year)
          设置 XSD dateTime year 字段的低和高顺序组件。
abstract  void setYear(int year)
          设置 XSD dateTime year 字段的年。
abstract  GregorianCalendar toGregorianCalendar()
          将此 XMLGregorianCalendar 转换为 GregorianCalendar
abstract  GregorianCalendar toGregorianCalendar(TimeZone timezone, Locale aLocale, XMLGregorianCalendar defaults)
          将此 XMLGregorianCalendar 以及提供的参数转换为 GregorianCalendar 实例。
 String toString()
          返回此 XMLGregorianCalendar ObjectString 表示形式。
abstract  String toXMLFormat()
          返回 this 实例的词汇表示形式。
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

XMLGregorianCalendar

public XMLGregorianCalendar()
方法详细信息

clear

public abstract void clear()

取消设置所有未定义的字段。

将所有 int 字段设置为 DatatypeConstants.FIELD_UNDEFINED,并将引用字段设置为 null。


reset

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 相关的资源。


setYear

public abstract void setYear(BigInteger year)

设置 XSD dateTime year 字段的低和高顺序组件。

通过使用参数值 null 调用设置方法取消设置此字段。

参数:
year - 日期/时间字段映射表中 year 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 year 参数超出日期/时间映射表中指定字段的值约束。

setYear

public abstract void setYear(int year)

设置 XSD dateTime year 字段的年。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

注:如果 year 参数的绝对值小于 10^9,则通过此方法将 XSD year 字段的 eon 组件设置为 null

参数:
year - 日期/时间字段映射表中 year 字段中总结的值约束。如果年是 DatatypeConstants.FIELD_UNDEFINED,那么将 eon 设置为 null

setMonth

public abstract void setMonth(int month)

设置月。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
month - 日期/时间映射表的 month 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 month 参数超出日期/时间映射表中指定字段的值约束。

setDay

public abstract void setDay(int day)

设置月中的日。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
day - 日期/时间字段映射表的 day 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 day 参数超出日期/时间映射表中指定字段的值约束。

setTimezone

public abstract void setTimezone(int offset)

设置时区偏移量中的分钟数。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
offset - 日期/时间字段映射表的 timezone 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 offset 参数超出日期/时间映射表中指定字段的值约束。

setTime

public void setTime(int hour,
                    int minute,
                    int second)

将时间设置为一个单元。

参数:
hour - 日期/时间字段映射表的 hour 字段中总结的值约束。
minute - 日期/时间字段映射表的 minute 字段中总结的值约束。
second - 日期/时间字段映射表的 second 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果任何参数超出日期/时间映射表中指定字段的值约束。
另请参见:
setTime(int, int, int, BigDecimal)

setHour

public abstract void setHour(int hour)

设置小时。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
hour - 日期/时间字段映射表的 hour 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 hour 参数超出日期/时间映射表中指定字段的值约束。

setMinute

public abstract void setMinute(int minute)

设置分。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
minute - 日期/时间字段映射表的 minute 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 minute 参数超出日期/时间映射表中指定字段的值约束。

setSecond

public abstract void setSecond(int second)

设置秒。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
second - 日期/时间字段映射表的 second 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 second 参数超出日期/时间映射表中指定字段的值约束。

setMillisecond

public abstract void setMillisecond(int millisecond)

设置毫秒。

通过使用 DatatypeConstants.FIELD_UNDEFINED 的参数值调用设置方法取消设置此字段。

参数:
millisecond - 日期/时间字段映射表的 millisecond 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 millisecond 参数超出日期/时间映射表中指定字段的值约束。

setFractionalSecond

public abstract void setFractionalSecond(BigDecimal fractional)

设置小数秒。

通过使用参数值 null 调用设置方法取消设置此字段。

参数:
fractional - 日期/时间字段映射表的 fractional 字段中总结的值约束。
抛出:
IllegalArgumentException - 如果 fractional 参数超出日期/时间映射表中指定字段的值约束。

setTime

public void setTime(int hour,
                    int minute,
                    int second,
                    BigDecimal fractional)

将时间设置为一个单元,包括可选无限精度小数秒。

参数:
hour - 日期/时间字段映射表的 hour 字段中总结的值约束。
minute - 日期/时间字段映射表的 minute 字段中总结的值约束。
second - 日期/时间字段映射表的 second 字段中总结的值约束。
fractional - 值 null 指示不设置此可选字段。
抛出:
IllegalArgumentException - 如果任何参数超出日期/时间映射表中指定字段的值约束。

setTime

public void setTime(int hour,
                    int minute,
                    int second,
                    int millisecond)

将时间设置为一个单元,包括可选的毫秒。

参数:
hour - 日期/时间字段映射表的 hour 字段中总结的值约束。
minute - 日期/时间字段映射表的 minute 字段中总结的值约束。
second - 日期/时间字段映射表的 second 字段中总结的值约束。
millisecond - DatatypeConstants.FIELD_UNDEFINED 的值指示未设置此可选字段。
抛出:
IllegalArgumentException - 如果任何参数超出日期/时间映射表中指定字段的值约束。

getEon

public abstract BigInteger getEon()

返回 XML Schema 1.0 日期时间数据类型字段的高顺序组件,用于 year。如果未定义 year 字段的此可选部分,则返回 null

日期/时间字段映射表中 year 字段中总结了此值的值约束。

返回:
XMLGregorianCalendar 的 eon。返回的值是 10^9 的整数倍数。
另请参见:
getYear(), getEonAndYear()

getYear

public abstract int getYear()

返回 yearDatatypeConstants.FIELD_UNDEFINED XML Schema 1.0 日期时间数据类型字段的低顺序组件。

日期/时间字段映射表中 year 字段中总结了此值的值约束。

返回:
XMLGregorianCalendar 的年。
另请参见:
getEon(), getEonAndYear()

getEonAndYear

public abstract BigInteger getEonAndYear()

返回 year XML Schema 1.0 的日期时间数据类型字段。

日期/时间字段映射表中 year 字段中总结了此值的值约束。

返回:
当定义两个字段时,返回 eonBigInteger.valueOf(year) 的总和。当仅定义 year 时,返回 year。当 eonyear 都未定义时,返回 null
另请参见:
getEon(), getYear()

getMonth

public abstract int getMonth()

返回月数或 DatatypeConstants.FIELD_UNDEFINED

日期/时间映射表的 month 字段中总结了此值的值约束。

返回:
XMLGregorianCalendar 的年。

getDay

public abstract int getDay()
返回月中的日或 DatatypeConstants.FIELD_UNDEFINED

日期/时间字段映射表的 day 字段中总结了此值的值约束。

另请参见:
setDay(int)

getTimezone

public abstract int getTimezone()
返回以分为单位的时区偏移量,如果未定义此可选字段,则返回 DatatypeConstants.FIELD_UNDEFINED

日期/时间字段映射表的 timezone 字段中总结了此值的值约束。

另请参见:
setTimezone(int)

getHour

public abstract int getHour()
返回时或 DatatypeConstants.FIELD_UNDEFINED。如果未定义此字段,则返回 DatatypeConstants.FIELD_UNDEFINED

日期/时间字段映射表的 hour 字段中总结了此值的值约束。

另请参见:
setTime(int, int, int)

getMinute

public abstract int getMinute()
返回分或 DatatypeConstants.FIELD_UNDEFINED

如果未定义此字段,则返回 DatatypeConstants.FIELD_UNDEFINED

日期/时间字段映射表的 minute 字段中总结了此值的值约束。

另请参见:
setTime(int, int, int)

getSecond

public abstract int getSecond()

返回秒或 DatatypeConstants.FIELD_UNDEFINED

如果未定义此字段,则返回 DatatypeConstants.FIELD_UNDEFINED。当未定义此字段时,不能定义由 getFractionalSecond()getMillisecond() 表示的可选 xs:dateTime 小数 seconds 字段。

日期/时间字段映射表的 second 字段中总结此值的值约束。

返回:
XMLGregorianCalendar 的秒。
另请参见:
getFractionalSecond(), getMillisecond(), setTime(int, int, int)

getMillisecond

public int getMillisecond()

返回 getFractionalSecond() 的毫秒精度。

此方法表示由 getFractionalSecond() 返回的无限精度小数秒值的有用访问器。返回的值是 getFractionalSecond() 的毫秒值的下舍入值。当 getFractionalSecond() 返回 null 时,此方法必须返回 DatatypeConstants.FIELD_UNDEFINED

日期/时间字段映射表的 second 字段中总结此值的值约束。

返回:
XMLGregorianCalendar 的毫秒。
另请参见:
getFractionalSecond(), setTime(int, int, int)

getFractionalSecond

public abstract BigDecimal getFractionalSecond()

返回小数秒。

当未定义此可选字段时,返回 null

日期/时间字段映射表的 second 字段中详细描述了值约束。

getSecond() 表示的 xs:dateTime 秒字段未返回 DatatypeConstants.FIELD_UNDEFINED 时,此可选字段只能有一个已定义的值。

返回:
XMLGregorianCalendar 的小数秒。
另请参见:
getSecond(), setTime(int, int, int, BigDecimal)

compare

public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar)

根据 W3C XML Schema 1.0 第二部分 3.2.7.3 小节 Order relation on dateTime 中定义的部分顺序关系,比较 W3C XML Schema 1.0 日期/时间数据类型的两个实例。

日期/时间映射表中定义了到此类的访问器的 xsd:dateTime 数据类型字段映射。

参数:
xmlGregorianCalendar - 要比较的 XMLGregorianCalendar 实例
返回:
XMLGregorianCalendar 与作为 DatatypeConstants.LESSERDatatypeConstants.EQUALDatatypeConstants.GREATERDatatypeConstants.INDETERMINATE 指定的 xmlGregorianCalendar 之间的关系。
抛出:
NullPointerException - 如果 xmlGregorianCalendar 为 null。

normalize

public abstract XMLGregorianCalendar normalize()

将此实例标准化为 UTC。

2000-03-04T23:00:00+03:00 标准化为 2000-03-04T20:00:00Z

实现 W3C XML Schema 第二部分 3.2.7.3 (A) 小节。

返回:
标准化为 UTC 的 XMLGregorianCalendar

equals

public boolean equals(Object obj)

指示参数 obj 是否“等于”此参数。

覆盖:
Object 中的 equals
参数:
obj - 要比较的对象。
返回:
objXMLGregorianCalendar 的实例,并且 compare(XMLGregorianCalendar obj) 返回 DatatypeConstants.EQUAL 时,返回 true,否则返回 false
抛出:
NullPointerException - 如果 objnull
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()

返回与 equals 方法的定义一致的哈希码。

覆盖:
Object 中的 hashCode
返回:
此对象的哈希码。
另请参见:
Object.equals(java.lang.Object), Hashtable

toXMLFormat

public abstract String toXMLFormat()

返回 this 实例的词汇表示形式。在 XML Schema 1.0 第二部分 3.2.[7-14].1 小节 "Lexical Representation". 中指定了该格式。

getXMLSchemaType() 确定特定目标词汇表示形式的格式。

返回:
XML,此 XMLGregorianCalendarString 表示形式
抛出:
IllegalStateException - 如果设置字段的组合与定义的八个 XML Schema 内置日期/时间数据类型之一不匹配。

getXMLSchemaType

public abstract QName getXMLSchemaType()

返回此实例映射到的 XML Schema 日期/时间类型的名称。该类型根据设置的字段来计算。

XML Schema 1.0 日期/时间数据类型的必需字段。
(对于所有日期/时间数据类型,时区是可选的)
数据类型 year month day hour minute second
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#DATETIEDatatypeConstants.TIMEDatatypeConstants.DATEDatatypeConstants.GYEARMONTHDatatypeConstants.GMONTHDAYDatatypeConstants.GYEARDatatypeConstants.GMONTHDatatypeConstants.GDAY
抛出:
IllegalStateException - 如果设置字段的组合与定义的八个 XML Schema 内置日期/时间数据类型之一不匹配。

toString

public String toString()

返回此 XMLGregorianCalendar ObjectString 表示形式。

结果是 toXMLFormat() 生成的词汇表示形式。

覆盖:
Object 中的 toString
返回:
XMLGregorianCalendar 的非 null 有效 String 表示形式。
抛出:
IllegalStateException - 如果设置字段的组合与定义的八个 XML Schema 内置日期/时间数据类型之一不匹配。
另请参见:
toXMLFormat()

isValid

public abstract boolean isValid()
通过 getXMLSchemaType() 约束来验证实例。

返回:
如果数据值有效,则返回 true。

add

public abstract void add(Duration duration)

duration 添加到此实例。

XML Schema 1.0 第二部分附录 E Adding durations to dateTimes> 中指定了计算。日期/时间字段映射表定义了从 XML Schema 1.0 dateTime 字段到此类的这些字段的表示形式的映射。

参数:
duration - 添加到此 XMLGregorianCalendar 的持续时间。
抛出:
NullPointerException - 当 duration 参数为 null 时。

toGregorianCalendar

public abstract GregorianCalendar toGregorianCalendar()

将此 XMLGregorianCalendar 转换为 GregorianCalendar

this 实例具有未定义的字段时,此转换依赖于其相应字段的 java.util.GregorianCalendar 默认值。 XML Schema 1.0 日期/时间数据类型和 java.util.GregorianCalendar 之间的显著差异是时区值对于日期/时间数据类型是可选的,并且它是 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())
  • 通过调用 {(@link GegorianCalendar#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

另请参见:
toGregorianCalendar(java.util.TimeZone, java.util.Locale, XMLGregorianCalendar)

toGregorianCalendar

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 时,使用 this.getTimezone() 创建带有自定义时区 id 的 defaults.getTimezone()
  • 另外,对主机使用 GregorianCalendar 默认时区值按 java.util.TimeZone.getDefault() 指定的方式定义。
  • 要确保转换实现中的一致性,应使用以下方式实例化新的 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 时,它提供要使用的默认字段值。如果 defaultsnull 或指定 defaults 中的字段未定义,则仅使用 java.util.GregorianCalendar 默认值。
    返回:
    此实例的 java.util.GregorianCalendar 转换。

getTimeZone

public abstract TimeZone getTimeZone(int defaultZoneoffset)

返回此类的 java.util.TimeZone

如果未定义此实例的时区字段,则返回使用时区偏移量的自定义时区 id 初始化的 TimeZone。如果未定义时区字段,则尝试传入的 defaultZoneoffset。如果 defaultZoneoffset 为 FIELD_UNDEFINED,则返回此主机的默认时区。(与 java.util.GregorianCalendar 相同的默认值)。

参数:
defaultZoneoffset - 如果此时区偏移量为 DatatypeConstants.FIELD_UNDEFINED,则为默认时区偏移量。
返回:
为其返回 TimeZone。

clone

public abstract Object clone()

创建并返回此对象的一个副本。

覆盖:
Object 中的 clone
返回:
Object 的副本。
另请参见:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策