Warm tip: This article is reproduced from serverfault.com, please click

wcf-.NET 3.5中DateTime序列化的最佳做法

(wcf - Best practices for DateTime serialization in .NET 3.5)

发布于 2008-09-15 17:57:51

大约4年前,我按照这篇MSDN文章介绍了DateTime使用的最佳实践,该最佳实践是在.Net 1.1和ASMX Web服务(以SQL 2000服务器为后端)上构建.Net客户端的。我仍然记得DateTime所遇到的序列化问题,以及它在不同时区中对服务器所做的测试工作。

我的问题是:是否为WCF和SQL Server 2008等某些新技术提供了类似的最佳实践文档,尤其是添加了新的datetime类型来存储时区感知信息。

这是环境:

  1. 太平洋时间的SQL Server 2008。
  2. Web Services层位于其他时区。
  3. 客户端可能在不同时区使用.Net 2.0或.Net 3.5。如果这很容易,我们可以强迫所有人升级到.Net 3.5。:)

对于每一层中要使用的数据类型,是否有任何好的建议/最佳实践?

Questioner
Gulzar Nazim
Viewed
0
Abe Heidebrecht 2008-09-16 02:14:18

我认为最好的方法是始终将对象作为UTC传递,并在客户端上转换为本地时间。这样,所有客户都有一个共同的参考点。

若要转换为UTC,请在DateTime对象上调用ToUniversalTime。然后,在客户端上,调用ToLocalTime以获取其当前时区。