【发布时间】:2012-04-10 08:04:24
【问题描述】:
这是一个非常简单的(希望如此)问题。我是在 .NET 中使用 DateTime 转换的新手。
我有一个具有 DateTime 属性的 WCF 服务 - 称之为 BookingDate。
有人以以下格式将其传递给我的 WCF 服务:
<a:BookingDate>2012-03-26T17:03:00-04:00</a:BookingDate>
它所在的服务器设置为 UTC 时区(里斯本、伦敦、都柏林)。
当我将相应的值存储在数据库中时,它将值设置为:
2012-03-26 22:03
我假设,我错误地认为 .NET 框架(作为 WCF 序列化/反序列化过程的一部分)会为我将其弹出到 UTC 的 .Net 日期时间(因为如上所述有 4 小时的负偏移量)
我期待:2012-03-26 21:03
我的问题是:我需要打电话吗:
var date = fromClientWCFService.BookingDate.ToUniversalTime();
为了得到我期待的 21:03 时间?
如果没有,是否有 WCF 设置告诉我的服务将 DateTimes 转换为 UTC,而不是服务器时区?
提前致谢
标记
编辑:
从 1 个答案中,我可以看到可以使用 DateTimeOffset。在此之后,以下工作:var offset = DateTimeOffset.Parse("2012-03-26T17:03:00-0400"); 返回结果:2012-03-26 21:03
【问题讨论】:
-
这真的是骗子吗?如果是,那么我们应该这样关闭它。