我想在Java 7中解析Duration字符串,比如PT45M。我尝试了SimpleDataFormat,但不存在任何像PnDTnHnMn.nS这样的模式。有什么方法可以做到吗?
ThreeTen背包
您可能知道也可能不知道,正如另一个答案所说,java的Duration
类,java 8中引入的time可以做到这一点。好消息是java.time也被后移植到了Java6和Java7。从底部的链接获取后台端口,然后继续。例如:
System.out.println("Java version: " + System.getProperty("java.version"));
Duration dur = Duration.parse("PT45M");
System.out.println("Parsed duration: " + dur);
System.out.println("Converted to whole seconds: " + dur.getSeconds());
在我的电脑上,这段代码的输出是:
Java version: 1.7.0_67 Parsed duration: PT45M Converted to whole seconds: 2700
链接
- Oracle教程:日期时间,解释如何使用java.Time
- Java规范请求(JSR(310,其中首次描述了
java.time
- ThreeTen Backport项目,
java.time
到Java 6和7的Backport(JSR-310的ThreeTen( - ThreeTenABP,安卓版ThreeTen背包
- 问题:如何在Android项目中使用ThreeTenABP,有一个非常彻底的解释
- 维基百科文章:ISO 8601
看看Java文档的Duration。您可以通过parse方法将该字符串转换为duration对象,并通过getSeconds((方法获取秒数。然后,您可以将秒转换为常规的javaDateTimeneneneba API对象。