检测DST当前是否已启用

Nis*_*sim 4 .net c# vb.net timezone dst

我需要找到一种简单的方法来了解本地计算机是否启用了"自动调整夏令时的时钟"选项.如果选项打开,我需要知道它是否当前已应用(即它是否是当前系统中的DST).提前致谢

Jon*_*eet 8

您可以找到当前系统默认时区以及当前是否正在使用DST(夏令时)(.NET 3.5以上):

TimeZoneInfo zone = TimeZoneInfo.Local;
if (zone.SupportsDaylightSavingTime)
{
    Console.WriteLine("System default zone uses DST...");
    Console.WriteLine("In DST? {0}", zone.IsDaylightSavingTime(DateTime.UtcNow));       
}
else
{
    Console.WriteLine("System default zone does not use DST.");
}
Run Code Online (Sandbox Code Playgroud)

  • @hamad:天哪,我什至从未见过。我个人*会*使用它,因为a)它不会告诉您当前时区是否甚至支持DST;b)您实际上是在问一个逻辑上关于特定时间点的时区的问题-使用我提供给IMO的那种代码要灵活得多;c)它没有使用“ DateTime”的可怕的“让我们隐式使用系统默认时区”方面。由于各种原因,我不喜欢`DateTime`。 (2认同)