英文:
Parse Duration String Java 7
问题
我想在Java 7中解析持续时间字符串,比如PT45M。我尝试过使用SimpleDateFormat,但是没有与PnDTnHnMn.nS这样的模式匹配的内容。有没有什么方法可以实现?
英文:
I want to parse Duration strings in Java 7, like PT45M. I try with SimpleDataFormat but not exist any pattern like PnDTnHnMn.nS. Is there any way to do it?
答案1
得分: 3
ThreeTen Backport
正如您可能已经了解的,以及其他答案所说,Java 8 中引入的 Duration
类可以实现这一功能。好消息是,java.time
已经被回溯到了 Java 6 和 7。从底部的链接获取回溯版本,然后开始使用。例如:
System.out.println("Java 版本:" + System.getProperty("java.version"));
Duration dur = Duration.parse("PT45M");
System.out.println("解析后的持续时间:" + dur);
System.out.println("转换为整秒:" + dur.getSeconds());
在我的计算机上,这段代码的输出是:
Java 版本:1.7.0_67
解析后的持续时间:PT45M
转换为整秒:2700
链接
- Oracle 教程:日期时间 解释了如何使用
java.time
。 - Java 规范请求 (JSR) 310,其中首次描述了
java.time
。 - ThreeTen Backport 项目,将
java.time
回溯到 Java 6 和 7(JSR-310 的 ThreeTen)。 - ThreeTenABP,ThreeTen Backport 的 Android 版本。
- 问题:如何在 Android 项目中使用 ThreeTenABP,附有非常详细的解释。
- 维基百科文章:ISO 8601。
英文:
ThreeTen Backport
As you may or may not be aware, and as the other answer says, the Duration
class of java,time introduced in Java 8 can do that. The good news is that java.time has been backported to Java 6 and 7 too. Get the backport from the link at the bottom and go ahead. For example:
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());
On my computer output from this piece of code was:
> Java version: 1.7.0_67
> Parsed duration: PT45M
> Converted to whole seconds: 2700
Links
- Oracle tutorial: Date Time explaining how to use java.time.
- Java Specification Request (JSR) 310, where
java.time
was first described. - ThreeTen Backport project, the backport of
java.time
to Java 6 and 7 (ThreeTen for JSR-310). - ThreeTenABP, Android edition of ThreeTen Backport
- Question: How to use ThreeTenABP in Android Project, with a very thorough explanation.
- Wikipedia article: ISO 8601
答案2
得分: 0
看一下Java Duration 文档。你可以通过 parse 方法将该字符串转换为一个 Duration 对象,然后使用 getSeconds() 方法获取秒数。然后,你可以将秒数转换为常规的 Java DateTime API 对象。
英文:
Have a look at Java Documentation for Duration. You can convert that string to a duration object via parse method and get seconds with getSeconds() method. Then you can convert seconds to regular java DateTime API objects.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论