我想解析Java 7中的Duration字符串,例如PT45M。我尝试使用SimpleDataFormat,但不存在任何类似PnDTnHnMn.nS的模式。有什么办法吗?
您可能知道也可能不知道,并且正如另一个答案所说,Java 8中引入的java,time类Duration
可以做到这一点。好消息是java.time也已被反向移植到Java 6和7。从底部的链接获取反向端口,然后继续。例如:
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
java.time
。java.time
的向后移植到Java 6和7(JSR-310的ThreeTen)。看看Java Documentation for Duration。您可以通过parse方法将该字符串转换为持续时间对象,并使用getSeconds()方法获得秒数。然后,您可以将秒转换为常规的Java DateTime API对象。