我有一个网站,我从其他供应商处使用网络服务。我从服务中导入了WSDL并将它们添加为服务引用。
当服务发送DateTime参数时,会出现问题,导致.NET客户端自动将接收到的值转换为本地时间。例如:如果DE中的服务器发送08:00:00.000 + 02:00,则Azure网站将识别为06:00:00 Kind:Local,并且因为Azure网站在UTC上工作正常。
但我需要DE服务器的相对时间,因为那些是工作时间,我不能将它们存储为UTC。问题是历史数据,因为UTC没有DaylightSavingTime,如果您显示历史时间,即使在一年中的不同时间转换为客户端时间,也会是不同的时间。
此外:
如果可能,我只想获得原始时间,例如切断时区
编辑:
如果有人知道如何用默认值替换服务反序列化,我也可以制作不同的反序列化器。
EDIT2:
由于生成的代码是部分类,因此最好的解决方案之一是在反序列化之前直接访问字段的字符串。有没有办法做到这一点?
EDIT3:
我发现从UTC转换时间转换为DaylightSavings,所以它可能只是伎俩。但最初的问题仍然存在。
var localDate = TimeZoneInfo.ConvertTime(utcDate,TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"));