我正在做一个有YAML的项目
- title: Toshiki Kadomatsu - Airport Lady
time: 35:46
- title: Yellow Magic Orchestra - Technopolis
time: 39:58
具体来说,它是一个控制MPD(音乐播放器守护程序)的Go程序,这样它就可以播放长音频文件中的特定歌曲。
然而,我希望能够在我的程序中显示当前正在播放的歌曲。我计划通过从MPD接收经过的时间(以秒数表示)来实现这一点[例如:1239.324
]。我可以从这个创建一个持续时间,只需在末尾加上一个“s”。然后我计划将这个持续时间与yaml文件中歌曲的其他持续时间进行比较。
我似乎无法使用time.ParseDuration
将35:46
解析为持续时间。我可以将:
替换为m
,并在末尾添加s
,但有些歌曲文件的时间戳超过了一个小时,如下所示:01:04:20
.
如何用Go语言解析这些时间戳?
2条答案
按热度按时间5cg8jx4n1#
您可以使用
strings.Split
方法,将字符串按照分隔符进行分隔,然后创建一个[3]float64
数组,并按照从后到前的顺序填充数据,这样可以避免由于缺少小时或分钟而导致的数据短缺。另外,可以考虑用时间来处理一些特殊情况,比如71秒
00:01:11
。例如:测试
ffdz8vbo2#
如果你想做一些特别的事情,写一个函数。
比如说
https://go.dev/play/p/JvHYPEnk-Gy