首页 > 解决方案 > 如何解析迄今为止的 Youtube 持续时间?

问题描述

我无法将 Youtube 持续时间解析为日期或日期时间,我搜索并访问了许多网站,但我无法解析 youtube 字符串持续时间

Youtube 时长样本为:PT15M33S

请点击 youtube api 文档

标签: dartyoutube-data-api

解决方案


它的 ISO 8601 持续时间以P[n]Y[n]M[n]DT[n]H[n]M[n]S格式给出

例子:

20 秒:

PT20.0S

一年 3 个月 3 天 4 小时 5 分钟 10 秒:

P1Y3M3DT4H5M10S

不幸的是,dart 没有提供解析器 api Duration 类 所以你必须自己解析并输入 Duration 并转换为 Datatime

你可以试试Match-class

String durationString = "P2Y5M3W4DT5H4M2S";
String regxPattern= "^P(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?\$";

  print(regxPattern);

RegExp re = new RegExp(regxPattern);

if (re.hasMatch(durationString)) {

   for (var m in re.allMatches(durationString)) {


     print("total:"+m.group(0));
     print("Y:"+m.group(1));
     print("M:"+m.group(2));
     print("W:"+m.group(3));
     print("D:"+m.group(4));
     print("Time:"+m.group(5));
     print("H:"+m.group(6));
     print("M:"+m.group(7));
     print("S:"+m.group(8));
     Duration fastestMarathon = new Duration(hours:m.group(6), 
                                             minutes:m.group(7), 
                                             second,m.group(8));

   }

}




推荐阅读