在Powershell中将ISO8601(我认为)转换为小时:分钟:秒

Mat*_*ode 1 xml powershell time

我不确定这是否是一个简单的答案。我尝试寻找在线转换 ISO 时间的方法,我相信 ISO 8601 是我正在处理的时间格式,但我不是 100% 确定,我找不到关于它的太多信息。

为了保持超短,在我用 Powershell 解析的 XML 文档中,有一个持续时间字段写为“PT8M51.693S”,它等于 8:51.693,即 8 分 51.693 秒。我想将其转换为“8:51”或“08:51”。任何人都知道我将如何做到这一点?谢谢你的帮助。

use*_*407 6

您可以使用[Xml.XmlConvert]::ToTimeSpan将 XML 持续时间类型转换为 .NETTimeSpan类型。TimeSpan要将对象转换为所需格式的字符串表示形式,您可以使用 PowerShell 格式运算符-f

$ts = [Xml.XmlConvert]::ToTimeSpan("PT8M51.693S")
'{0:00}:{1:00}:{2:00}' -f ($ts.Hours+$ts.Days*24), $ts.Minutes, $ts.Seconds
Run Code Online (Sandbox Code Playgroud)