【发布时间】:2014-12-17 20:00:10
【问题描述】:
我有以下代码,应该返回 60 的偏移量(以表明目前在英国,我们处于英国夏令时 - 即比格林威治标准时间提前 60 分钟):
var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
double off = localServerTime.Offset.TotalMinutes;
return off;
但是,它返回 0。
谁能帮我解决这个问题?
【问题讨论】:
-
你没有在任何地方使用
info。所以你的off将是当前时区偏移量。 -
@vc74 这个问题具有误导性。
info变量已初始化,但未使用。返回的偏移量仅基于DateTimeOffset.Now。 -
有趣。这对我来说很好(捷克夏令时)。您确定您的服务器设置正确,时区正确吗?
-
@vc74 UTC == GMT,始终如此。您似乎是在说英国目前处于 GMT(或 UTC)而不是 BST,但我不认为这是正确的,维基百科同意我的观点,即 BST 直到下周末才会结束。
-
BST 直到周日才结束,
DateTimeOffset.Now.Offset.TotalMinutes现在在英国为我返回 60。
标签: c# .net dst datetimeoffset