我们使用 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 (在 dst 中偏移 -5 小时)。我使用的方法有错吗?框架中的错误?windows配置错误?
谢谢并恭祝安康
马克