0

在 Microsoft.NET 2.0 中有一个小脚本,可将 XML 反序列化回类型化对象,使用 ServiceDescription 动态连接到 Web 服务,并将反序列化的类型化对象绑定到入站 WebMethod。序列化之前的 XML 如下所示

<completion_time>12:19:38</completion_time> 

与 Web 服务通信时在线上如下所示

<completion_time>12:19:38.0000000-04:00</completion_time>

时区附加到末尾。这会导致在不同时区与 Web 服务通信时读取的时间不同。有没有让 XmlSerializer 跳过时区?或任何其他已知的解决方法?

4

3 回答 3

1

遇到同样的问题。终于在 DataColumn 对象上找到了DateTimeMode属性。它采用DataSetDateTime 枚举的成员,该枚举控制 Time 的序列化方式。将其设置为 Unspecified 将阻止序列化程序对时间进行任何转换。

您可以遍历现有的 DataSet 并设置模式,如下所示:

        foreach (DataColumn column in table.Columns) {
            if (column.DataType == typeof(DateTime)) {
                column.DateTimeMode = DataSetDateTime.Unspecified;
            }   
        }
于 2011-05-11T19:01:27.097 回答
0

您可以将“completion_time”字段的类型从 DateTime 更改为字符串,并使用 datetime formater 获取没有时区的 datetime 字符串

DateTime 日期 = DateTime.UtcNow;date.ToString("hh:mm:ss");

于 2010-03-30T21:32:39.203 回答
0

http://blogs.msdn.com/brada/archive/2004/04/13/112784.aspx

[XmlElementAttribute(DataType="date")]

public DateTime date;

或者

[XmlAttributeAttribute(DataType="date")]

public DateTime date;
于 2010-03-30T21:42:36.617 回答