Ral*_*gum 15 .net xml timespan
是否有标准库方法将具有标准ISO 8601持续时间(也在XSD中用于其duration类型)格式的持续时间的字符串转换为.NET TimeSpan对象?
例如,表示持续时间为1小时的P0DT1H0M0S将转换为New TimeSpan(0,1,0,0,0).
反向转换器确实存在,其工作方式如下:Xml.XmlConvert.ToString(New TimeSpan(0,1,0,0,0))上面的表达式将返回P0DT1H0M0S.
use*_*658 24
这将从xs:duration转换为TimeSpan:
System.Xml.XmlConvert.ToTimeSpan("P0DT1H0M0S")
Run Code Online (Sandbox Code Playgroud)
请参阅http://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.totimespan.aspx
Pau*_*ams 19
一个小小的警告 - XmlConvert.ToTimeSpan()在使用数月和数年时有点滑稽.TimeSpan类没有月份或年份成员,可能是因为它们的长度不同.但是,ToTimeSpan()将很乐意接受包含月份或年份值的持续时间字符串并猜测持续时间,而不是抛出异常.注意:
PS C:\Users\troll> [Reflection.Assembly]::LoadWithPartialName("System.Xml")
GAC Version Location
--- ------- --------
True v2.0.50727 C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll
PS C:\Users\troll> [System.Xml.XmlConvert]::ToTimeSpan("P1M")
Days : 30
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 0
Ticks : 25920000000000
TotalDays : 30
TotalHours : 720
TotalMinutes : 43200
TotalSeconds : 2592000
TotalMilliseconds : 2592000000
PS C:\Users\troll> [System.Xml.XmlConvert]::ToTimeSpan("P1Y")
Days : 365
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 0
Ticks : 315360000000000
TotalDays : 365
TotalHours : 8760
TotalMinutes : 525600
TotalSeconds : 31536000
TotalMilliseconds : 31536000000
PS C:\Users\troll>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10991 次 |
| 最近记录: |