You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确初始化org.apache.xmlbeans.GDuration对象并设置时长值

问题原因

org.apache.xmlbeans.GDuration的全参构造方法签名如下:

GDuration(int sign, int year, int month, int day, int hour, int minute, int second, BigDecimal fraction)
  • 第一个参数sign是时长符号位,仅支持1(正时长)、-1(负时长)两个合法值,你传入0属于非法值,是触发初始化报错的核心原因
  • 最后一个参数为小数秒值,无特殊需求时传入BigDecimal.ZERO即可,避免空指针风险

可用初始化示例

首先导入必要依赖类:

import org.apache.xmlbeans.GDuration;
import java.math.BigDecimal;

具体场景示例:

  • 初始化15分钟(对应ISO格式PT15M):
static final GDuration FIFTEEN_MINUTES = new GDuration(1, 0, 0, 0, 0, 15, 0, BigDecimal.ZERO);
  • 初始化10秒(对应ISO格式PT10S):
static final GDuration TEN_SECONDS = new GDuration(1, 0, 0, 0, 0, 0, 10, BigDecimal.ZERO);
  • 其他常用场景:
    • 2小时30分钟:new GDuration(1, 0, 0, 0, 2, 30, 0, BigDecimal.ZERO)
    • 1天5小时:new GDuration(1, 0, 0, 1, 5, 0, 0, BigDecimal.ZERO)
    • 负30秒(向前偏移30秒):new GDuration(-1, 0, 0, 0, 0, 0, 30, BigDecimal.ZERO)

效果校验

调用toString()方法即可输出标准ISO 8601时长格式,验证是否符合预期:

System.out.println(FIFTEEN_MINUTES); // 输出PT15M
System.out.println(TEN_SECONDS); // 输出PT10S

内容的提问来源于stack exchange,提问作者User_67128

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:36:04