2016-04-25 18 views
0

これは単純な答えかどうかわかりません。私はISOの時間をオンラインで変換する方法を探してみました.ISO 8601は私が扱っている時間形式ですが、私は100%確実ではないと思います。私はそれについて多くの情報を見つけることができませんでした。PowershellでISO8601(私は思う)を時間:分:秒に変換する

Powershellで解析しているXML文書で、「PT8M51.693S」と書かれた期間フィールドが8:51.693、つまり8分51.693秒になります。私はそれを "8:51"または "08:51"に変換したいと思います。誰がどのように私はこれを行うだろうか考えている?助けてくれてありがとう。

+0

はこの魔法をここから抜け出す:そして、目的の形式で文字列表現にTimeSpanオブジェクトを変換するために、あなたはPowerShellの形式の演算子-fを使用することができます。 powershellは、時、分、秒の文字をどのように知っていますか? –

+0

また、 "ToString"と引数count: "1"のオーバーロードが見つかりませんでした。 –

+2

* PowerShellは時、分、秒の文字をどのように知っていますか?* PowerShellはそれを認識しません。 XMLに準拠する期間を解析し、.NETの 'TimeSpan'オブジェクトを返すのは[[Xml.XmlConvert] :: ToTimeSpan'の責任です。 *また、このメッセージでエラーが返されます。* PowerShell v2を使用しているので、次のようにしてください: '$ ts = [Xml.XmlConvert] :: ToTimeSpan(" PT8M51.693S "); '{0:00}:{1:00}:{2:00}' -f($ ts.Hours + $ ts.Days * 24)、$ ts.Minutes、$ ts.Seconds'です。 – PetSerAl

答えて

3

[Xml.XmlConvert]::ToTimeSpanを使用すると、XMLの継続時間タイプを.NET TimeSpanタイプに変換できます。

$ts = [Xml.XmlConvert]::ToTimeSpan("PT8M51.693S") 
'{0:00}:{1:00}:{2:00}' -f ($ts.Hours+$ts.Days*24), $ts.Minutes, $ts.Seconds 
関連する問題