【发布时间】:2010-09-30 05:12:09
【问题描述】:
我的服务器位于美国,我正在对其进行查询。远程服务器(美国)和本地的表中包含的数据是相同的。
问题是当我使用 WebService 从远程服务器检索数据集时。日期列显示上一个日期。例如,日期列具有“2007 年 1 月 14 日”,但检索时显示“2007 年 1 月 13 日”。
我无法确定原因,因为其他一切都正常。
【问题讨论】:
我的服务器位于美国,我正在对其进行查询。远程服务器(美国)和本地的表中包含的数据是相同的。
问题是当我使用 WebService 从远程服务器检索数据集时。日期列显示上一个日期。例如,日期列具有“2007 年 1 月 14 日”,但检索时显示“2007 年 1 月 13 日”。
我无法确定原因,因为其他一切都正常。
【问题讨论】:
数据集中的时间存在问题,至少在 .net 1.1 中是这样。数据集自动将时间调整为客户端的时区。我的猜测是您的客户端设置为比服务器更西的时区。反过来,这会将时间向后推几个小时,导致日期从 2007 年 1 月 14 日移到 2007 年 1 月 13 日。
查看this 知识库文章。
【讨论】:
也许数据库的本地化不是数据集所期望的。我不确定确切的规格,但例如,它可能将值存储为 EDT 但希望它是 UTC。因此,您在数据库文件中看到的可能是 2007 年 1 月 14 日凌晨 12:00,但是当它本地化为美国时间时,您会得到 2007 年 1 月 13 日下午 4:00 什么的?
检查时间,而不仅仅是日期,看看你是否能识别出一个模式。然后你也许可以相应地调整。
【讨论】: