C# UTC DateTime query in WCF/.NET
这是一个非常简单的(希望)问题。我不熟悉.NET中的DateTime转换。
我有一个具有DateTime属性的WCF服务 - 称之为BookingDate。
有人以下列格式将其传递给我的WCF服务:
1 | 2012-03-26T17:03:00-04:00</a:BookingDate> |
它所在的服务器设置为UTC时区(里斯本,伦敦,都柏林)。
当我将相应的值存储在数据库中时,它将值设置为:
1 | 2012-03-26 22:03 |
我假设,我认为不正确的.NET框架(作为WCF序列化/反序列化过程的一部分)会将此突然显示为UTC的.Net日期时间(因为上面有4小时的负偏移量)
我在期待:
我的问题是:我需要打电话:
1 | var date = fromClientWCFService.BookingDate.ToUniversalTime(); |
为了获得我期待的21:03时间?
如果没有,是否有WCF设置告诉我的服务将DateTimes转换为UTC,而不是服务器时区?
提前致谢
标记
编辑:
从1回答,我可以看到可以使用DateTimeOffset。接下来,将进行以下工作:
您应该使用
事实上,在几乎所有情况下,使用
These uses for DateTimeOffset values are much more common than those
for DateTime values. As a result, DateTimeOffset should be considered
the default date and time type for application development.
如果您的服务器时区位于里斯本/伦敦/都柏林时间,那么它不是UTC。 您需要更改服务器的时区,或者在数据库中更新时以UTC格式表示日期/时间值。