【发布时间】:2008-12-01 17:00:12
【问题描述】:
我正在清理大型代码库中的一个错误,在该代码库中没有人关注本地时间与 UTC 时间。
我们想要的是一种全局忽略发送到我们的 ASP.NET Web 服务和从我们的 ASP.NET Web 服务发送的 DateTime 对象的时区信息的方法。我有一个检索操作的解决方案。数据仅在数据集中返回,我可以查找 DateTime 列并将 DateTimeMode 设置为 Unspecified。这解决了我在数据集中来回传递的所有数据的问题。
不过,DateTime 对象也经常作为参数直接传递给 Web 方法。我想剥离任何传入的时区信息。与其搜索我们的客户端代码并使用 DateTime.SpecifyKind(..) 将所有 DateTime 变量设置为未定义,我想做某种全局 ASP.NET 覆盖来监视传入参数并去除时区信息。
这样的事情可能吗?还是有其他更简单的方法来做我想做的事?
重申一下——我不关心时区,每个人都在同一个时区。但是有几个用户的机器配置错误,时区错误等。所以当他们在 2008 年 7 月 1 日发送时,我在服务器端得到 2008 年 6 月 30 日 22:00:00,它会自动将其从他们的本地时间到服务器的本地时间。
更新:另一种可能性是,如果可以在客户端 .NET 代码上进行更改,以改变类型为“未定义”的 DateTime 对象的序列化方式。
【问题讨论】:
标签: asp.net web-services