如何正确格式化从Youtube API提取的Java(android)中的Youtube视频时长

问题描述 投票:0回答:1

我们在android中有此通话:

https://www.googleapis.com/youtube/v3/videos?id=7nwwdhZzVro&part=contentDetails,statistics&key=YOUR_KEY

这将产生以下结果:

{
"kind": "youtube#videoListResponse",
"etag": "\"SJZWTG6xR0eGuCOh2bX6w3s4F94/VOhpy08pTLV0gkKEHqgFjpTWvRY\"",
"pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 1
},
"items": [{
    "kind": "youtube#video",
    "etag": "\"SJZWTG6xR0eGuCOh2bX6w3s4F94/zatyJpHwm5XYTpovyREQKk3FNh0\"",
    "id": "7nwwdhZzVro",
    "contentDetails": {
        "duration": "PT5M46S",
        "dimension": "2d",
        "definition": "hd",
        "caption": "false",
        "licensedContent": true,
        "projection": "rectangular"
    },
    "statistics": {
        "viewCount": "261804",
        "likeCount": "3069",
        "dislikeCount": "47",
        "favoriteCount": "0",
        "commentCount": "67"
    }
}]
}

假设我已将值保存到名为String videoDuration的变量中,如何将videoDuration正确格式化为00:00mm:ss?就我而言,它应显示05:46

java android json date-format
1个回答
0
投票

这似乎遵循iso8601 duration format

Duration dur = Duration.parse("PT5M46S");
String ms = String.format("%d:%02d:%02d", 
                                dur.toHours(), 
                                dur.toMinutesPart(), 
                                dur.toSecondsPart());
 System.out.println(hms);

此输出:

0:05:46
© www.soinside.com 2019 - 2024. All rights reserved.