看来我在WinApi中发现了一个错误。当我在Visual Studio 2015的Debug中使用TimeZoneInfo.Local.DisplayName时,它会向我返回正确的变体,例如“(UTC + 02:00)赫尔辛基,基辅,里加,索非亚,塔林,维尔纽斯”。在 Release模式(.net native )中,相同的api返回“FLE标准时间”。非常高兴听到如何以其他方式获取时区信息,或者如何解决此问题。

最佳答案

您很可能错过了代码中的某些内容。我之前犯过的且很容易犯的一个错误是将DisplayNameDaylightName混淆了:

        static void Main(string[] args)
        {
            var timeZoneName = TimeZoneInfo.Local.DaylightName; //FLE Standard Time
            var displayName = TimeZoneInfo.Local.DisplayName; //(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
        }

作为引用,您可以检查Time Zone IDs

关于c# - WinApi中的TimeZoneInfo返回错误值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38585289/

10-13 04:54