【问题标题】:Microsoft sync framework DateTime problem微软同步框架DateTime问题
【发布时间】:2011-04-25 12:57:12
【问题描述】:

我在同步 DateTime 数据时遇到问题。同步 DateTime 数据时,它始终使用服务器本地时区。我一直在搜索和阅读这方面的内容,只找到了这个官方的解决方法:

http://support.microsoft.com/kb/842545

此解决方法早在 2007 年就已发布。Microsoft 是否真的没有针对此问题发布修复程序?如果不是,这是解决问题的唯一方法吗?

【问题讨论】:

    标签: c# wcf microsoft-sync-framework


    【解决方案1】:

    如果您可以同时控制客户端和服务器,则最好使用 UTC DateTimes(与时区无关)。然后,您应该始终使用 DateTimeKind UTC 将 DateTimes 持久化到数据库(或文件或任何您使用的持久化):

    http://msdn.microsoft.com/en-us/library/system.datetime.kind.aspx

    您可以委托客户端正确显示时间(给定用户时区)。

    如果您无法同时控制客户端和服务器,我看不到任何解决方法,而是 Microsoft 提供的解决方法。关键是当可能面对不同时区的客户时,应始终使用 UTC 时间。

    问候, 托吉尔

    【讨论】:

    • 使用 UTC 并不能解决这个问题。 System.Data.DataSet在反序列化时忽略了DateTimeKind,根据客户端和服务端时区的差异调整时间。
    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多