如何在Java中转换Youtube API V3持续时间

2022-09-02 03:04:03

Youtube V3 API使用ISO8601时间格式来描述视频的持续时间。像“PT1M13S”这样的东西。现在我想将字符串转换为秒数(在本例中为 73)。

有没有Java库可以帮助我在Java 6下轻松完成任务?或者我必须自己做正则表达式任务?

编辑

最后,我接受了@Joachim Sauer的答案

示例代码如下所示。Joda

PeriodFormatter formatter = ISOPeriodFormat.standard();
Period p = formatter.parsePeriod("PT1H1M13S");
Seconds s = p.toStandardSeconds();

System.out.println(s.getSeconds());

答案 1

Joda Time是任何类型的时间相关功能的首选库。

对于此特定情况,ISOPeriodFormat.standard() 返回一个 PeriodFormatter,该格式可以解析和格式化该格式。

生成的对象是一个句点JavaDoc)。然后,获取实际的秒数将是 ,但我建议您只将持续时间作为对象来处理(以便于处理和类型安全)。period.toStandardSeconds().getSeconds()Period

编辑:来自未来我的注释:这个答案现在已经有几年的历史了。Java 8带来的也可以解析这种格式,并且不需要外部库。java.time.Duration


答案 2

Java 8 中的解决方案:

Duration.parse(duration).getSeconds()