我有一个服务(语言: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
我有一个服务(语言: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
DateTime
值的区别并不是因为.Net框架,因为它的区域设置设置。
千万不要通过您的网络服务传递DateTime
值,通过DateTimeOffset
然后在您的客户端中转换为DateTime
类型。
我没有传递DateTime对象。它是数据集的一部分。 –
@AshishShakya,[返回DataSet是坏的](http://stackoverflow.com/questions/1659402/to-return-a-dataset-in-a-web-service-or-not),但它可能在这里的主题,你必须修改你的DataSet并返回一个由DateTime对象创建的'DateTimeOffset'类型的列,并使用它。 – Habib
Web服务设置为只调用存储过程并将结果返回给客户端。在数据库中,该列是“DateTime”。在这一点上,我没有选择更改数据库存储方式的选项。我可以读取数据集并将日期时间转换为datetimeoffset并将处理后的数据集传递回客户端。但是,还有什么解决问题的方法吗? –
什么确切的代码被用来阅读DateTime的? – Arran
datetime依赖于特定的语言环境 - 确保它在测试过程中保持不变 – Nogard
我直接从数据集读取日期,如下所示: Convert.ToDateTime(client.Tables [0] .Rows [0] [“BIRTHDATE”]) ; –