TimeZoneInfo.ConvertTimeFromUtc不考虑夏令时



我们使用TimeZoneInfo。ConvertTimeFromUtc将UTC时间转换为本地等效时间。当转换到时区"中美洲标准时间"时,结果似乎不考虑夏令时。

根据这个页面http://www.timeanddate.com/worldclock/city.html?n=24和我的客户,他们在德克萨斯州奥斯汀有夏令时

我的测试代码:
        DateTime result;
        DateTime utcTime = Convert.ToDateTime("20.04.2013 11:32:00");
        try
        {
            TimeZoneInfo sourceTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central America Standard Time");
            result = TimeZoneInfo.ConvertTimeFromUtc(utcTime, sourceTimeZone);
        }
        catch (Exception)
        {
            result = Convert.ToDateTime("01.01.1900 00:00:00");
        }
        Console.WriteLine();
        Console.WriteLine( Convert.ToString(result) );

它给出20.04.2013 05:32:00而不是20.04.2013 06:32:00(夏令时-5小时偏移)。我的方法用错了吗?框架中的bug ?windows配置错误?

Thanks and regards

Marc

"中美洲标准时间"并不是你想象中的时区。这不是德克萨斯州的奥斯汀,而是中美洲(危地马拉等)。如果你看一下危地马拉的时区(从你之前引用的同一个网站),你会发现它总是UTC-6,没有夏令时。

请参阅此文件(取自CLDR)以获取示例映射。你想要"中央标准时间",我完全希望它能做正确的事情。

作为一个快速插件,如果你想使用。net的IANA时区数据库,你可能要考虑使用我的Noda时间库。

相关内容

  • 没有找到相关文章

最新更新