如何在VB.Net中将ISO 8601持续时间转换为TimeSpan?

时间:2020-03-05 18:53:27  来源:igfitidea点击:

是否有一种标准的库方法,可以将具有标准ISO 8601持续时间(在XSD中也以"持续时间"类型使用)格式的持续时间的字符串转换为.NET TimeSpan对象?

例如,代表一个小时的持续时间的P0DT1H0M0S被转换为New TimeSpan(0,1,0,0,0)。

确实存在一个反向转换器,其工​​作方式如下:
Xml.XmlConvert.ToString(New TimeSpan(0,1,0,0,0))
上面的表达式将返回P0DT1H0M0S。

解决方案

回答

这将从xs:duration转换为TimeSpan:

System.Xml.XmlConvert.ToTimeSpan("P0DT1H0M0S")

请参阅http://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.totimespan.aspx