java.lang.Object javax.xml.datatype.XMLGregorianCalendar
W3C XML 模式 1.0 日期/时间数据类型的表示形式。明确地说,这些日期/时间数据类型是 XML 名称空间 "http://www.w3.org/2001/XMLSchema"
中定义的 dateTime
、time
、date
、gYearMonth
、gMonthDay
、gYear
gMonth
和 gDay
。在 W3C XML 模式 1.0 第二部分 3.2.7-14 节中以标准形式定义了这些数据类型。
下表定义了 XML 模式 1.0 日期/时间数据类型字段和此类的字段之间的映射关系。还总结了 W3C XML 模式 1.0 第二部分的附录 D ISO 8601 Date and Time Formats 中定义的日期和时间字段的值约束。
XML 模式 1.0 和 Java 表示形式之间的日期/时间数据类型字段映射关系 | ||
---|---|---|
XML 模式 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 模式 1.0 勘误表说明 year 0 是 XML 模式以后版本中的一个有效词汇值,那么此类允许将 year 字段设置为0。否则,完全按照勘误表和 [ISO-8601-1988] 中的描述处理 year 字段值。注意,W3C XML 模式 1.0 验证不允许 year 字段具有 0 值。 |
month | getMonth() |
1 到 12 或 DatatypeConstants.FIELD_UNDEFINED |
day | getDay() |
与 month 无关,最大范围是 1 到 31 或 DatatypeConstants.FIELD_UNDEFINED 。相对于 month 字段的值说明的标准化值约束位于 W3C XML 模式 1.0 第二部分附录 D 中。 |
hour | getHour() |
0 到 24 或 DatatypeConstants.FIELD_UNDEFINED 。对于值 24,根据 XML 模式勘误表,minute 和 second 字段必须为 0。 |
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
。
为此类定义以下操作:
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 模式 1.0 第二部分 3.2.7.3 小节 Order relation on dateTime 中定义的部分顺序关系,比较 W3C XML 模式 1.0 日期/时间数据类型的两个实例。 |
boolean |
equals(Object obj) 将此日历与指定的对象进行比较。 |
abstract int |
getDay() 返回月中的日或 DatatypeConstants.FIELD_UNDEFINED 。 |
abstract BigInteger |
getEon() 返回 year XML 模式 1.0 日期时间数据类型字段的高顺序组件。 |
abstract BigInteger |
getEonAndYear() 返回 year XML 模式 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 模式日期/时间类型的名称。 |
abstract int |
getYear() 返回 year 或 DatatypeConstants.FIELD_UNDEFINED XML 模式 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 Object 的 String 表示形式。 |
abstract String |
toXMLFormat() 返回 this 实例的词汇表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public XMLGregorianCalendar()
注:总是使用 DatatypeFactory
来构造 XMLGregorianCalendar
实例。无法保证该类上的构造方法生成具有一致状态且可在以后移除的对象。
方法详细信息 |
---|
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
year 字段的低和高顺序组件。
通过使用参数值 null
调用设置方法取消设置此字段。
year
-
日期/时间字段映射表中 year 字段中总结的值约束。
IllegalArgumentException
- 如果
year
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setYear(int year)
设置 XSD dateTime
year 字段的年。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
注:如果 year
参数的绝对值小于 10^9,则通过此方法将 XSD year 字段的 eon 组件设置为 null
。
year
-
日期/时间字段映射表中 year 字段中总结的值约束。如果 year 是
DatatypeConstants.FIELD_UNDEFINED
,那么将 eon 设置为
null
。
public abstract void setMonth(int month)
设置月。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
month
-
日期/时间映射表的 month 字段中总结的值约束。
IllegalArgumentException
- 如果
month
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setDay(int day)
设置月中的日。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
day
-
日期/时间字段映射表的 day 字段中总结的值约束。
IllegalArgumentException
- 如果
day
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setTimezone(int offset)
设置时区偏移量中的分钟数。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
offset
-
日期/时间字段映射表的 timezone 字段中总结的值约束。
IllegalArgumentException
- 如果
offset
参数超出
日期/时间映射表中指定字段的值约束。
public void setTime(int hour, int minute, int second)
将时间设置为一个单元。
hour
-
日期/时间字段映射表的 hour 字段中总结的值约束。
minute
-
日期/时间字段映射表的 minute 字段中总结的值约束。
second
-
日期/时间字段映射表的 second 字段中总结的值约束。
IllegalArgumentException
- 如果任何参数超出
日期/时间映射表中指定字段的值约束。
setTime(int, int, int, BigDecimal)
public abstract void setHour(int hour)
设置小时。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
hour
-
日期/时间字段映射表的 hour 字段中总结的值约束。
IllegalArgumentException
- 如果
hour
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setMinute(int minute)
设置分。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
minute
-
日期/时间字段映射表的 minute 字段中总结的值约束。
IllegalArgumentException
- 如果
minute
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setSecond(int second)
设置秒。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
second
-
日期/时间字段映射表的 second 字段中总结的值约束。
IllegalArgumentException
- 如果
second
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setMillisecond(int millisecond)
设置毫秒。
通过使用 DatatypeConstants.FIELD_UNDEFINED
的参数值调用设置方法取消设置此字段。
millisecond
-
日期/时间字段映射表的 second 字段中总结的值约束。
IllegalArgumentException
- 如果
millisecond
参数超出
日期/时间映射表中指定字段的值约束。
public abstract void setFractionalSecond(BigDecimal fractional)
设置小数秒。
通过使用参数值 null
调用设置方法取消设置此字段。
fractional
-
日期/时间字段映射表的 second 字段中总结的值约束。
IllegalArgumentException
- 如果
fractional
参数超出
日期/时间映射表中指定字段的值约束。
public void setTime(int hour, int minute, int second, BigDecimal fractional)
将时间设置为一个单元,包括可选无限精度小数秒。
hour
-
日期/时间字段映射表的 hour 字段中总结的值约束。
minute
-
日期/时间字段映射表的 minute 字段中总结的值约束。
second
-
日期/时间字段映射表的 second 字段中总结的值约束。
fractional
- 值
null
指示不设置此可选字段。
IllegalArgumentException
- 如果任何参数超出
日期/时间映射表中指定字段的值约束。
public void setTime(int hour, int minute, int second, int millisecond)
将时间设置为一个单元,包括可选的毫秒。
hour
-
日期/时间字段映射表的 hour 字段中总结的值约束。
minute
-
日期/时间字段映射表的 minute 字段中总结的值约束。
second
-
日期/时间字段映射表的 second 字段中总结的值约束。
millisecond
-
DatatypeConstants.FIELD_UNDEFINED
的值指示未设置此可选字段。
IllegalArgumentException
- 如果任何参数超出
日期/时间映射表中指定字段的值约束。
public abstract BigInteger getEon()
返回 year
XML 模式 1.0 日期时间数据类型字段的高顺序组件。如果未定义 year 字段的此可选部分,则返回 null
。
日期/时间字段映射表中 year 字段中总结了此值的值约束。
XMLGregorianCalendar
的 eon。返回的值是 10^9 的整数倍数。
getYear()
,
getEonAndYear()
public abstract int getYear()
返回 year
或 DatatypeConstants.FIELD_UNDEFINED
XML 模式 1.0 日期时间数据类型字段的低顺序组件。
日期/时间字段映射表中 year 字段中总结了此值的值约束。
XMLGregorianCalendar
的年。
getEon()
,
getEonAndYear()
public abstract BigInteger getEonAndYear()
返回 year
XML 模式 1.0 的日期时间数据类型字段。
日期/时间字段映射表中 year 字段中总结了此值的值约束。
public abstract int getMonth()
返回月数或 DatatypeConstants.FIELD_UNDEFINED
。
日期/时间映射表的 month 字段中总结了此值的值约束。
XMLGregorianCalendar
的年。
public abstract int getDay()
DatatypeConstants.FIELD_UNDEFINED
。
日期/时间字段映射表的 day 字段中总结了此值的值约束。
setDay(int)
public abstract int getTimezone()
DatatypeConstants.FIELD_UNDEFINED
。
日期/时间字段映射表的 timezone 字段中总结了此值的值约束。
setTimezone(int)
public abstract int getHour()
DatatypeConstants.FIELD_UNDEFINED
。如果未定义此字段,则返回
DatatypeConstants.FIELD_UNDEFINED
。
日期/时间字段映射表的 hour 字段中总结了此值的值约束。
setTime(int, int, int)
public abstract int getMinute()
DatatypeConstants.FIELD_UNDEFINED
。
如果未定义此字段,则返回
DatatypeConstants.FIELD_UNDEFINED
。
日期/时间字段映射表的 minute 字段中总结了此值的值约束。
setTime(int, int, int)
public abstract int getSecond()
返回秒或 DatatypeConstants.FIELD_UNDEFINED
。
如果未定义此字段,则返回 DatatypeConstants.FIELD_UNDEFINED
。当未定义此字段时,不得定义由 getFractionalSecond()
和 getMillisecond()
表示的可选 xs:dateTime 小数 seconds 字段。
日期/时间字段映射表的 second 字段中总结此值的值约束。
XMLGregorianCalendar
的秒。
getFractionalSecond()
,
getMillisecond()
,
setTime(int, int, int)
public int getMillisecond()
返回 getFractionalSecond()
的毫秒精度。
此方法表示由 getFractionalSecond()
返回的无限精度小数秒值的有用存取程序。返回的值是 getFractionalSecond()
的毫秒值的下舍入值。当 getFractionalSecond()
返回 null
时,此方法必须返回 DatatypeConstants.FIELD_UNDEFINED
。
日期/时间字段映射表的 second 字段中总结此值的值约束。
XMLGregorianCalendar
的毫秒。
getFractionalSecond()
,
setTime(int, int, int)
public abstract BigDecimal getFractionalSecond()
返回小数秒。
当未定义此可选字段时,返回 null
。
在 日期/时间字段映射表的 second 字段中详细描述了值约束。
当 getSecond()
表示的 xs:dateTime 秒字段未返回 DatatypeConstants.FIELD_UNDEFINED
时,此可选字段只能有一个已定义的值。
XMLGregorianCalendar
的小数秒。
getSecond()
,
setTime(int, int, int, BigDecimal)
public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar)
根据 W3C XML 模式 1.0 第二部分 3.2.7.3 小节 Order relation on dateTime 中定义的部分顺序关系,比较 W3C XML 模式 1.0 日期/时间数据类型的两个实例。
在日期/时间映射表中定义了到此类的存取程序的 xsd:dateTime
数据类型字段映射。
xmlGregorianCalendar
- 要比较的
XMLGregorianCalendar
实例
此
XMLGregorianCalendar
与
xmlGregorianCalendar
之间的关系:
DatatypeConstants.LESSER
、