如何转换 javax.xml.datatype.Duration
how to convert javax.xml.datatype.Duration
我收到来自服务器的 javax.xml.datatype.Duration 格式的响应。
这就是我得到的
行程持续时间 = P2DT15H45M0S
我想要它的格式
要求的格式 = 2 天 15 小时 45 分钟
如何做到这一点?
有什么方法可以将 从 javax.xml.datatype.Duration 转换为 String.
谢谢。
通过
将javax.xml.datatype.Duration实例转换为字符串
duration.toString()
然后关注 link。这将有助于正确格式化
没有外部库的简单直接的解决方案(Java 中没有内置的持续时间格式化程序):
Duration dur = DatatypeFactory.newInstance().newDuration("P2DT15H45M0S");
int days = dur.getDays();
int hours = dur.getHours();
int minutes = dur.getMinutes();
String formatted = days + " Days " + hours + " Hrs " + minutes + " Min"
如果您想要像“Day”这样的单数形式,以防一个持续时间部分刚好等于 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;
}
您可以从持续时间中获取天数、小时数和分钟数。
我收到来自服务器的 javax.xml.datatype.Duration 格式的响应。
这就是我得到的
行程持续时间 = P2DT15H45M0S
我想要它的格式
要求的格式 = 2 天 15 小时 45 分钟
如何做到这一点?
有什么方法可以将 从 javax.xml.datatype.Duration 转换为 String.
谢谢。
通过
将javax.xml.datatype.Duration实例转换为字符串duration.toString()
然后关注 link。这将有助于正确格式化
没有外部库的简单直接的解决方案(Java 中没有内置的持续时间格式化程序):
Duration dur = DatatypeFactory.newInstance().newDuration("P2DT15H45M0S");
int days = dur.getDays();
int hours = dur.getHours();
int minutes = dur.getMinutes();
String formatted = days + " Days " + hours + " Hrs " + minutes + " Min"
如果您想要像“Day”这样的单数形式,以防一个持续时间部分刚好等于 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;
}
您可以从持续时间中获取天数、小时数和分钟数。