如何转换javax.xml.datatype.Duration中

问题描述 投票:3回答:3

我有一个从服务器javax.xml.datatype.Duration中格式的响应。 这是我得到的 旅行时间= P2DT15H45M0S 我希望它在格式 所需的格式= 2天15个小时45分钟 这个怎么做? 有没有办法从javax.xml.datatype.Duration中转换为字符串。

谢谢。

java string duration reformat
3个回答
7
投票

无需外部库的简单和直接的解决方案(没有在Java中没有内置的持续时间格式):

Duration dur = DatatypeFactory.newDuration("P2DT15H45M0S");
int days = dur.getDays();
int hours = dur.getHours();
int minutes = dur.getMinutes();

String formatted = days + " Days " + hours + " Hrs " + minutes + " Min"

如果你想在情况下单数形式,如“日”的一个时间部分恰好等于1是由你来一个小的增强添加该代码。也许你还需要先归你持续时间(例如,如果你的第二个部分是超过59),见javadoc


1
投票
    public static Duration convertXmlTypeDuration(String input) throws DatatypeConfigurationException {
       // Duration duration =
       // DatatypeFactory.newInstance().newDuration("P2DT23H59M0S");
       Duration duration = DatatypeFactory.newInstance().newDuration(input);
       return duration;
}

您可以从持续时间获得天,小时和分钟。


0
投票

转换javax.xml.datatype.Duration中的实例,通过串

duration.toString()

然后按照link。这将在适当的格式帮助

© www.soinside.com 2019 - 2024. All rights reserved.