解析持续时间字符串Java 7



我想在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对象。

最新更新