测验持续时间分别指定为天,小时和分钟,以整数表示。
我正在尝试将这些组合转换为秒。下面的代码我试过了。但它总是返回0秒。我正在使用jdk 6
Integer hours = 3, days=4, minutes=20;
javax.xml.datatype.Duration duration = DatatypeFactory.newInstance().newDuration(true, 0, 0,
days,
hours,
minutes,
0);
Integer seconds = duration.getSeconds(); // It always returns zero
请指导。
JavaDocs for javax.xml.datatype.Duration.getSeconds()
说
获得SECONDS字段的值作为整数值;如果不存在,则为0。该方法与getYears()一样,除了该方法在SECONDS字段上有效。
如果要计算此持续时间所代表的总秒数,则必须自己计算,可能是这样(可能有更好的解决方案:]
javax.xml.datatype.Duration.getSeconds()
在某些情况下,private static int getInSeconds(javax.xml.datatype.Duration duration) {
int totalSeconds = 0;
totalSeconds += duration.getSeconds();
totalSeconds += (duration.getMinutes() * 60);
totalSeconds += (duration.getHours() * 60 * 60);
totalSeconds += (duration.getDays() * 24 * 60 * 60);
// ... calculate values for other fields here, too
return totalSeconds;
}
不够用,请记住这一点。