我正在使用提供的 wsdl 与 Web 服务集成(我无法控制此 Web 服务)。在调用方法时,我需要在请求中传递 DateTime。请求需要包含 UTC 格式的日期时间(最后是 Z)。该请求包含以下字段,
[System.Xml.Serialization.XmlElementAttribute(DataType="date", Order=0)]
public System.DateTime date
{
get
{
return this.dateField;
}
set
{
this.dateField = value;
}
请注意 xsd 数据类型是日期。
我构造了DateTime
作为 Utc 传递的请求,
request.date = DateTime.SpecifyKind(DateTime.Parse(DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'")), DateTimeKind.Utc);
我遇到的问题是即使我DateTime
作为 Utc 传递,soap 请求出现时没有时区。例如,请求生成如下所示,
<GetRequest xmlns=" http://soa.company.com/services/example/v2">
<date>2001-01-01</date>
</GetRequest>
我的期望是得到,
<GetRequest xmlns=" http://soa.company.com/services/example/v2">
<date>2001-01-01Z</date>
</GetRequest>
我认为这是由于日期时间序列化期间的往返。有人遇到过这种问题吗?