|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.xml.datatype
类 Duration
java.lang.Object javax.xml.datatype.Duration
-
public abstract class Duration
- extends Object
W3C XML Schema 1.0 规范中定义的时间范围的不可变表示形式。
Duration 对象表示一段阳历时间,它由六个字段(years、months、days、hours、minutes 和 seconds)加上符号 (+/-) 字段组成。
前五个字段为非负 (>=0) 整数或 null(表示不设置字段),seconds 字段为非负小数或 null。负号指示负的持续时间。
此类提供大量的方法,使 XML Schema 1.0 及勘误中的 duration 数据类型的使用更简单。
顺序关系
Duration 对象仅有部分顺序,其中值 A 和 B 可以是以下任一顺序:
- A<B(A 比 B 短)
- A>B(A 比 B 长)
- A==B(A 和 B 的持续时间相同)
- A<>B(A 和 B 之间的比较是不确定的)
例如,将 30 天与一个月比较没有意义。compare(Duration duration)
方法实现此关系。
有关 Duration
对象之间顺序关系的详细信息,请参阅 isLongerThan(Duration)
方法。
对 Duration 的操作
此类提供一组基本的算术运算,如加、减和乘。因为持续时间没有整体顺序,对一些组合操作,操作可能失败。例如,不能从 1 个月减去 15 天。有关发生此情形的详细情况,请参阅这些方法的 javadoc。
另外,不提供持续时间除以数字的除法,因为 Duration
类仅处理有限精度的十进制数字。例如,无法表示 1 秒除以 3。
但是,可以用乘以数字(如 0.3 或 0.333)替代除以 3 的除法。
允许值的范围
即使 Duration
可以保持非常大或非常小的值,因为某些 Duration
的操作依赖于 Calendar
,所以一些方法不能在此类 Duration
上正常工作。受影响的方法记录其对 Calendar
的依赖。
- 从以下版本开始:
- 1.5
- 另请参见:
XMLGregorianCalendar.add(Duration)
构造方法摘要 | |
---|---|
Duration() |
方法摘要 | |
---|---|
abstract Duration |
add(Duration rhs) 计算其值为 this+rhs 的新持续时间。 |
abstract void |
addTo(Calendar calendar) 将此持续时间添加到 Calendar 对象。 |
void |
addTo(Date date) 将此持续时间添加到 Date 对象。 |
abstract int |
compare(Duration duration) 与此 Duration 实例的部分顺序关系比较。 |
boolean |
equals(Object duration) 检查此持续时间对象是否与另一个 Duration 对象具有相同的持续时间。 |
int |
getDays() 获取整数值形式的 DAYS 字段的值,如果不存在,则其值为 0。 |
abstract Number |
getField(DatatypeConstants.Field field) 获取字段的值。 |
int |
getHours() 获取整数值形式的 HOURS 字段的值,如果不存在,则其值为 0。 |
int |
getMinutes() 获取整数值形式的 MINUTES 字段的值,如果不存在,则其值为 0。 |
int |
getMonths() 获取整数值形式的 MONTHS 字段的值,如果不存在,则其值为 0。 |
int |
getSeconds() 获取整数值形式的 SECONDS 字段的值,如果不存在,则其值为 0。 |
abstract int |
getSign() 以 -1、0 或 1 的形式返回此持续时间的符号。 |
long |
getTimeInMillis(Calendar startInstant) 返回以毫秒为单位的持续时间的长度。 |
long |
getTimeInMillis(Date startInstant) 返回以毫秒为单位的持续时间的长度。 |
QName |
getXMLSchemaType() 返回此实例映射到的 XML Schema 日期/时间类型的名称。 |
int |
getYears() 获取此 Duration 以 int 表示的 years 值,如果不存在,则其值为 0 。 |
abstract int |
hashCode() 返回与 equals 方法的定义一致的哈希码。 |
boolean |
isLongerThan(Duration duration) 检查此持续时间对象是否严格长于另一个 Duration 对象。 |
abstract boolean |
isSet(DatatypeConstants.Field field) 检查是否设置了字段。 |
boolean |
isShorterThan(Duration duration) 检查此持续时间对象是否严格短于另一个 Duration 对象。 |
abstract Duration |
multiply(BigDecimal factor) 计算其值是此持续时间的 factor 倍的新持续时间。 |
Duration |
multiply(int factor) 计算新的持续时间,其值是此持续时间值的 factor 倍。 |
abstract Duration |
negate() 返回其值是 -this 的新 Duration 对象。 |
abstract Duration |
normalizeWith(Calendar startTimeInstant) 通过使用特定的时间点作为参考点,将 years 和 months 字段转换为 days 字段。 |
Duration |
subtract(Duration rhs) 计算其值是 this-rhs 的新持续时间。 |
String |
toString() 返回此 Duration Object 的 String 表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
Duration
public Duration()
方法详细信息 |
---|
getXMLSchemaType
public QName getXMLSchemaType()
-
返回此实例映射到的 XML Schema 日期/时间类型的名称。类型根据设置的字段来计算,即
isSet(DatatypeConstants.Field field)
==true
。XML Schema 1.0 日期/时间数据类型的必需字段。
(对于所有日期/时间数据类型,时区是可选的)数据类型 year month day hour minute second DatatypeConstants.DURATION
X X X X X X DatatypeConstants.DURATION_DAYTIME
X X X X DatatypeConstants.DURATION_YEARMONTH
X X -
- 返回:
-
以下常量之一:
DatatypeConstants.DURATION
、DatatypeConstants.DURATION_DAYTIME
或DatatypeConstants.DURATION_YEARMONTH
。 - 抛出:
IllegalStateException
- 如果设置字段的组合与 XML Schema 日期/时间数据类型之一不匹配。
getSign
public abstract int getSign()
- 以 -1、0 或 1 的形式返回此持续时间的符号。
-
- 返回:
- 如果此持续时间为负,则返回 -1,如果持续时间为零,则返回 0,如果持续时间为正,则返回 1。
getYears
public int getYears()
-
获取此
Duration
以int
表示的 years 值,如果不存在,则其值为0
。getYears()
是getField(DatatypeConstants.YEARS)
的一个便捷方法。由于返回值是
int
,所以对于具有超出int
范围的年值的Duration
,返回不正确的值。使用getField(DatatypeConstants.YEARS)
避免可能的精度丢失。 -
- 返回:
-
如果存在 years 字段,则返回以
int
表示的值,否则返回0
。
getMonths
public int getMonths()
-
获取整数值形式的 MONTHS 字段的值,如果不存在,则其值为 0。 除了对 MONTHS 字段的作用之外,此方法的其他功能与
getYears()
相似。 -
- 返回:
-
此
Duration
的月。
getDays
public int getDays()
-
获取整数值形式的 DAYS 字段的值,如果不存在,则其值为 0。 除了对 MONTHS 字段的作用之外,此方法的其他功能与
getYears()
相似。 -
- 返回:
-
此
Duration
的日。
getHours
public int getHours()
-
获取整数值形式的 HOURS 字段的值,如果不存在,则其值为 0。 除了对 HOURS 字段的作用之外,此方法的其他功能与
getYears()
相似。 -
- 返回:
-
此
Duration
的时。
getMinutes
public int getMinutes()
-
获取整数值形式的 MINUTES 字段的值,如果不存在,则其值为 0。 除了对 MINUTES 字段的作用之外,此方法的其他功能与
getYears()
相似。 -
- 返回:
-
此
Duration
的分。