记号
的3210
对应于datatypes.xsd中指定的dayTimeDuration(基于持续时间dataype) - 请看清单here。
P = duration marker
nD = optional unsigned integer corresponding to number of days
T = date time separator
nH = number of hours
等等 - 你的想法:)
因此,要分析它,你可以做类似的快速&脏下面的例子:
var xmla = @"
<root xmlns:a=""a"">
<a:Date>2013-01-09T00:00:00</a:Date>
<a:StartTime>PT11H30M</a:StartTime>
<a:EndTime>PT12H</a:EndTime>
</root>";
var ns = new XmlNamespaceManager(new NameTable());
ns.AddNamespace("a", "a");
var ele = XElement.Parse(xmla);
var start = ele.XPathSelectElement("//a:StartTime", ns);
var end = ele.XPathSelectElement("//a:EndTime", ns);
var startTime = XmlConvert.ToTimeSpan(start.Value);
var endTime = XmlConvert.ToTimeSpan(end.Value);
var date = ele.XPathSelectElement("//a:Date", ns);
var dateTime = XmlConvert.ToDateTime(date.Value, XmlDateTimeSerializationMode.RoundtripKind);
Console.WriteLine("Ran at {0} for a duration of {1}", dateTime + startTime, endTime - startTime);
很奇怪指定*时间作为一个像这样的时期...... – 2013-02-12 08:44:08
嗨jon,有人创建了服务,我只是有权使用它。我无法更改Web服务。你有这个解决方案吗? – PaRsH 2013-02-12 08:49:36