【发布时间】:2013-09-10 07:58:12
【问题描述】:
我在 SQL 数据库中的数据如下所示:
PubDateUTC PubDateUTCOffset
----------------------- --------------------
2011-08-04 10:02:50.000 +8:00:00
2012-04-23 02:32:25.287 +8:00:00
2010-09-26 04:23:00.000 +8:00:00
我想要的是基于 PubDateUTC 和 PubDateUTCOffset 的 DateTime,例如:
2011-08-04 10:02:50.000, +8:00:00 应该会导致 2011-08-04 18:02:50:000
我已经尝试过使用 TimeZoneInfo 类,但我不知道如何使用“+8:00:00”之类的字符串创建 TimeZoneInfo 的实例,这将是下面的 CreateTimeZoneInfo 方法
var tz = CreateTimeZoneInfo(post.PubDateUTCOffset);
return TimeZoneInfo.ConvertTimeFromUtc(post.PubDateUTC, tz);
有没有办法做到这一点?
注意:我无法更改 SQL 数据库中的数据。
【问题讨论】:
-
将日期保存为数据库中的 DateTimeOffset 这非常有帮助,我为你写一个例子!或者你现在不能这样做
-
我不允许修改数据库设计:(
-
您的目标是获取当地时间吗?还是偏移量指定的时区的本地时间?还是其他时区?
-
应该“2011-08-04 10:02:50.000, +8:00:00”实际上导致“2011-08-04 2:02:50:000”吗?这是格林威治标准时间的等效时间。
-
和Leonid有同样的想法,你确定你要求的结果是对的吗?
标签: c# datetime timezone utc datetimeoffset