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

时间:2016-04-25 17:12:32

标签: xml powershell time

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

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

1 个答案:

答案 0 :(得分:4)

您可以使用[Xml.XmlConvert]::ToTimeSpan将XML持续时间类型转换为.NET TimeSpan类型。要将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