我有一个公历,在 soap 请求期间序列化为下面的字符串
2079-07-07T00:00:00.000-07:00
.NET Web 服务将其读取为下面的字符串
07/07/2079 01:00:00
是 07:00 导致问题吗? 如果是这样,我该如何摆脱它?
告诉我们您的系统上配置了哪个时区,有人可能会给您一个肯定的答案,但我认为 DST 规则不匹配。
JVM带有自己的时区和DST规则数据库,而Windows(和.NET)使用不同的数据库。从理论上讲,这两个数据库当然应该包含相同的规则,但我在历史日期的 DST 规则中遇到了差异。我认为遥远未来的日期也可能有所不同。
如果确实要通过 SOAP 服务传输日期值(无时间组件),最简单的解决方案是使用适当的 XML 架构数据类型而不是日期时间类型。
在 .net 代码中使用DateTimeOffset
,它会正常工作。