我有一个从服务器javax.xml.datatype.Duration中格式的响应。 这是我得到的 旅行时间= P2DT15H45M0S 我希望它在格式 所需的格式= 2天15个小时45分钟 这个怎么做? 有没有办法从javax.xml.datatype.Duration中转换为字符串。
谢谢。
无需外部库的简单和直接的解决方案(没有在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。
public static Duration convertXmlTypeDuration(String input) throws DatatypeConfigurationException {
// Duration duration =
// DatatypeFactory.newInstance().newDuration("P2DT23H59M0S");
Duration duration = DatatypeFactory.newInstance().newDuration(input);
return duration;
}
您可以从持续时间获得天,小时和分钟。