C# 夏季偏移的时区查询

C# 夏季偏移的时区查询,c#,datetime,C#,Datetime,我有一个小小的windows应用程序,当日期时间选择器改变时,它可以转换英国、美国和新西兰的时区,但我觉得我的代码没有考虑到各种夏季和冬季的偏移量。任何帮助都将不胜感激 TimeZoneInfo nzZone = TimeZoneInfo.FindSystemTimeZoneById("New Zealand Standard Time"); TimeZoneInfo ukZone = TimeZoneInfo.FindSystemTimeZoneById("GM

我有一个小小的windows应用程序,当日期时间选择器改变时,它可以转换英国、美国和新西兰的时区,但我觉得我的代码没有考虑到各种夏季和冬季的偏移量。任何帮助都将不胜感激

        TimeZoneInfo nzZone = TimeZoneInfo.FindSystemTimeZoneById("New Zealand Standard Time");
        TimeZoneInfo ukZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
        TimeZoneInfo usZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");

        DateTime nzZone1 = TimeZoneInfo.ConvertTime(dateTimePicker1.Value, TimeZoneInfo.Local, nzZone);
        DateTime ukZone1 = TimeZoneInfo.ConvertTime(dateTimePicker1.Value, TimeZoneInfo.Local, ukZone);
        DateTime usZone1 = TimeZoneInfo.ConvertTime(dateTimePicker1.Value, TimeZoneInfo.Local, usZone);

        label4.Text = nzZone1.ToString("dd-MM-yyyy HH:mm");
        label5.Text = ukZone1.ToString("dd-MM-yyyy HH:mm");
        label6.Text = usZone1.ToString("dd-MM-yyyy HH:mm");

这没关系。你的怀疑与英国和新西兰时区都实施日光变化这一事实有关。如果您创建了另一个不实施日光变化的时区信息(例如UTC和test),并使用两个完全不同的日期(如1月1日和7月1日),您可以看到预期的效果

     TimeZoneInfo utcZone = TimeZoneInfo.FindSystemTimeZoneById("UTC");
     DateTime utcZone1 = TimeZoneInfo.ConvertTime(dateTimePicker1.Value, TimeZoneInfo.Local, utcZone);
     labelutc.Text = utcZone1.ToString("dd-MM-yyyy HH:mm");

你能举个例子吗?预期的输入/输出?事实上,我不能,我在谷歌上看了看新西兰和英国何时改变了时间,上面的代码工作正常。