如何判断它是否是英国的夏令时

Mar*_*ark 3 .net c# datetimeoffset dst

我有以下代码,它应该返回60的偏移量(显示目前在英国,我们在英国夏令时 - 即比格林威治标准时间早60分钟):

var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
double off = localServerTime.Offset.TotalMinutes;
return off;
Run Code Online (Sandbox Code Playgroud)

但是,它返回0.

有人可以帮我解决这个问题吗?

Adr*_*ian 9

使用TimeZoneInfo.IsDaylightSavingTime方法(DateTimeOffset)查找当前是否为您的时区保存夏令时.

var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time");
DateTimeOffset localServerTime = DateTimeOffset.Now;
bool isDaylightSaving = info.IsDaylightSavingTime(localServerTime);
Run Code Online (Sandbox Code Playgroud)

有进一步的例子在这里

  • 使用“格林威治标准时间”时区对我不起作用,因为它显然不支持夏令时。我不得不改用“ GMT标准时间”。 (3认同)