所有类


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 可以是以下任一顺序:

  1. A<B(A 比 B 短)
  2. A>B(A 比 B 长)
  3. A==B(A 和 B 的持续时间相同)
  4. 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()
          获取此 Durationint 表示的 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 ObjectString 表示形式。
 
从类 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.DURATIONDatatypeConstants.DURATION_DAYTIMEDatatypeConstants.DURATION_YEARMONTH
抛出:
IllegalStateException - 如果设置字段的组合与 XML Schema 日期/时间数据类型之一不匹配。

getSign

public abstract int getSign()
以 -1、0 或 1 的形式返回此持续时间的符号。

返回:
如果此持续时间为负,则返回 -1,如果持续时间为零,则返回 0,如果持续时间为正,则返回 1。

getYears

public int getYears()

获取此 Durationint 表示的 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 的分。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部