Module java.xml

Class XMLGregorianCalendar

java.lang.Object
javax.xml.datatype.XMLGregorianCalendar
所有已实现的接口:
Cloneable

public abstract class XMLGregorianCalendar extends Object implements Cloneable

W3C XML Schema 1.0日期/时间数据类型的表示。具体来说,这些日期/时间数据类型是DatatypeConstants.DATETIMEDatatypeConstants.TIMEDatatypeConstants.DATEDatatypeConstants.GYEARMONTHDatatypeConstants.GMONTHDAYDatatypeConstants.GYEARDatatypeConstants.GMONTHDatatypeConstants.GDAY,这些数据类型在XML命名空间"http://www.w3.org/2001/XMLSchema"中定义。这些数据类型在W3C XML Schema 1.0第2部分第3.2.7-14节中被规范定义。

下表定义了XML Schema 1.0日期/时间数据类型字段与此类字段之间的映射。它还总结了在W3C XML Schema 1.0第2部分附录D,ISO 8601日期和时间格式中定义的日期和时间字段的值约束。

XML Schema 1.0与Java表示之间的日期/时间数据类型字段映射
XML Schema 1.0
数据类型
字段
相关的
XMLGregorianCalendar
访问器
值范围
getYear() + getEon()
getEonAndYear()
getYear()的值介于-(10^9-1)到(10^9)-1之间或DatatypeConstants.FIELD_UNDEFINED
getEon()是十亿年中的高阶年份值。
getEon()的值大于或等于(10^9)或小于或等于-(10^9)。null值表示字段未定义。
鉴于XML Schema 1.0勘误指出,零年将是将来版本的XML Schema中的有效词法值,此类允许将年字段设置为零。否则,年字段值将按照勘误和[ISO-8601-1988]中描述的方式处理。请注意,W3C XML Schema 1.0验证不允许年字段的值为零。
getMonth() 1到12或DatatypeConstants.FIELD_UNDEFINED
getDay() 独立于月份,最大范围为1到31或DatatypeConstants.FIELD_UNDEFINED
相对于月份字段值的规范值约束在W3C XML Schema 1.0第2部分附录D中说明。
小时 getHour() 0到23或DatatypeConstants.FIELD_UNDEFINED。允许将小时值设置为24,前提是分钟和秒字段值为零。但是,小时值为24在值空间中不允许,并将被转换为表示第二天第一个实例的值,根据XML Schema第2部分:数据类型第二版,3.2原始数据类型
分钟 getMinute() 0到59或DatatypeConstants.FIELD_UNDEFINED
getSecond() + getMillisecond()/1000或
getSecond() + getFractionalSecond()
getSecond()从0到60或DatatypeConstants.FIELD_UNDEFINED
(注意:60仅允许闰秒。)
getFractionalSecond()允许在定义getSecond()时在0.0到1.0的范围内具有无限精度。
FractionalSecond是可选的,当未定义时其值为null
getMillisecond()getFractionalSecond()的方便毫秒精度值。
时区 getTimezone() 分钟数或DatatypeConstants.FIELD_UNDEFINED。值范围从-14小时(-14 * 60分钟)到14小时(14 * 60分钟)。

上表中字段的所有最大值空间约束由工厂方法、DatatypeFactory的setter方法和解析方法检查。当参数值超出字段的值约束或组合值构成无效的XMLGregorianCalendar实例时,将抛出IllegalArgumentException异常(例如,如果指定了6月31日)。

为此类定义了以下操作:

自1.5起:
1.5
参见: