我有一个天蓝色的Web服务,可以向许多客户提供XML文件。
用户将XML文件发送到Web服务,它将XML反序列化为Object,然后将其序列化为客户所需的XML格式。
我遇到了一个奇怪的情况,XML文件中有两种不同的DateTime格式被发送到Web服务,在这种情况下,XML文件中输出的DateTimes是不正确的。但是,如果我在两个单独的文件中提供两个DateTimes,则两者都正确解析。
以下是两个DateTimes:
日期= “2015-09-23T14:30:00 + 01:00”
日期= “2015-09-23T14:30:00”
当在一个文件中解析一个或另一个时,它们都解析为14:30这是正确的,但是当两种格式都在文件中时,第二个DateTime解析为15:30和第一个14:30。
我尝试过分配CultureInfo,设置为当地时间。
我使用XmlSerializer Class和XmlSerializer.Deserialize Method将发送到Web服务的XML文件读取到我创建的对象。
然后我有一个简单的映射器,它将值写入XML并更改一些属性和节点名称。将DateTime写入字符串的代码是:
xmlWriter.WriteAttributeString("startdatetime", dateTime.ToString("s"))
真正让我感到震惊的是,当它们位于不同的文件中时,这一切都有效,但当它位于具有两个独立DateTime格式的文件中时,它们都无效。