dart - 如何解析迄今为止的 Youtube 持续时间?
问题描述
我无法将 Youtube 持续时间解析为日期或日期时间,我搜索并访问了许多网站,但我无法解析 youtube 字符串持续时间
Youtube 时长样本为:PT15M33S
解决方案
它的 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));
}
}
推荐阅读
- jsf - 如何在 CDI 中设置 @ManagedProperty
- c - Compiling c program with MinGW causes cc1.exe fatal error
- javascript - npm 错误在 node-sass@4.9.0 安装脚本中失败
- amazon-web-services - 理论上是否可以通过单个 http POST 请求在 Kinesis 中使用“putRecord”?
- git - 在使用 TFS 时,如何微调 Visual Studio 认为的合并冲突?
- javascript - 将 javascript 请求转换为 API 到 CURL
- angular - 服务循环的 ngrx 效果
- pentaho - 在 pentaho 修改的 java 脚本中无法识别 IsNull() 函数
- scala - 多个用户在 Play for Scala 中访问 Singleton
- html - 页面底部的白线无法删除