2013-11-26 32 views
2

我有一个服务(语言:VB.NET,Framework:.NET 3.5),它返回从中读取日期的数据集。数据库中列的值是:“1980-03-30 00:00:00.000”。DateTime值在不同版本的.NET框架中是不同的

在客户机(语言:C#),使用.NET 3.5,该值来彻底为:1980年3月30日12:00:00 AM

然而,当我更改相同的客户端使用.NET 4或.NET 4.5,通过该服务的日期是:3/29/1980 11:00:00 PM

+4

什么确切的代码被用来阅读DateTime的? – Arran

+1

datetime依赖于特定的语言环境 - 确保它在测试过程中保持不变 – Nogard

+0

我直接从数据集读取日期,如下所示: Convert.ToDateTime(client.Tables [0] .Rows [0] [“BIRTHDATE”]) ; –

回答

3

DateTime值的区别并不是因为.Net框架,因为它的区域设置设置。

千万不要通过您的网络服务传递DateTime值,通过DateTimeOffset然后在您的客户端中转换为DateTime类型。

+0

我没有传递DateTime对象。它是数据集的一部分。 –

+0

@AshishShakya,[返回DataSet是坏的](http://stackoverflow.com/questions/1659402/to-return-a-dataset-in-a-web-service-or-not),但它可能在这里的主题,你必须修改你的DataSet并返回一个由DateTime对象创建的'DateTimeOffset'类型的列,并使用它。 – Habib

+0

Web服务设置为只调用存储过程并将结果返回给客户端。在数据库中,该列是“DateTime”。在这一点上,我没有选择更改数据库存储方式的选项。我可以读取数据集并将日期时间转换为datetimeoffset并将处理后的数据集传递回客户端。但是,还有什么解决问题的方法吗? –

相关问题