如何在Java中转换Youtube API V3持续时间
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 楼答案
这是我的解决方案
如果你想在几秒钟内转换,它将返回一个H:MM:SS格式的字符串
注意:它可能引发异常,所以请根据结果的大小进行处理。拆分(“:”)
# 2 楼答案
Java 8中的解决方案:
# 3 楼答案
我可能会迟到,其实很简单。尽管可能有更好的方法。持续时间以毫秒为单位
# 4 楼答案
也许这会帮助那些不想要任何库,只想要一个简单函数的人
这就是功能
# 5 楼答案
Joda Time是任何类型的时间相关函数的go-to库
对于这个特定的情况ISOPeriodFormat.standard()返回一个^{} ,可以解析并格式化该格式
结果对象是a ^{} (JavaDoc)。获取实际秒数将是
period.toStandardSeconds().getSeconds()
,但我建议您只将持续时间作为Period
对象处理(为了便于处理和类型安全)编辑:来自未来我的一条提示:这个答案已经有好几年历史了。Java8带来了
java.time.Duration
,它也可以解析这种格式,不需要外部库# 6 楼答案
您可以使用标准
SimpleDateFormat
将String
解析为Date
并从那里处理它: