通过YouTube的API获取的视频,视频的时长格式是诸如 PT21H4M6S 这种格式,但这种格式不方便用户查看。所以我们可以使用正则表达式转换YouTube视频的时间格式。

 Regex reg = new Regex(@"^PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?$");
var time = reg.Replace("PT21H4M6S", new MatchEvaluator(match =>
{
if (!string.IsNullOrWhiteSpace(match.Groups[1].Value))
{
return string.Format("{0}:{1}:{2}",match.Groups[1].Value,match.Groups[2].Value,match.Groups[3].Value);
}
return string.Format("{0}:{1}",match.Groups[2].Value,match.Groups[3].Value);
}));
Console.WriteLine(time);