两个时区是 UTC-7 但具有不同的日期时间外观

Two timezones are UTC-7 but with different datetime appearance

我正在处理时区问题。我这里有一个 UTC 格式的日期时间 2015-8-24 14:00:00。我需要将其转换为时区 (UTC-7:00) 亚利桑那州和 (UTC-7:00) 美国山区时间(美国和加拿大)。

我认为转换后,时间应该是一样的,但是下面的代码是错误的:

var utc = DateTime.Parse("2015-08-24 14:00:00") ;

//(UTC-7:00)Arzona
var _timeZone = TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time");
DateTime result = TimeZoneInfo.ConvertTime(utc, TimeZoneInfo.Utc, _timeZone);
var convertedResult =  DateTime.SpecifyKind(result, DateTimeKind.Local);

// shows 2015-08-24 8:00:00 AM 
Console.WriteLine(convertedResult.ToString("yyyy-MM-dd hh:mm:ss"));


// (UTC-7:00) US Mountain Time (USA & Canada)
var _timeZoneEx = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
DateTime resultex = TimeZoneInfo.ConvertTime(utc, TimeZoneInfo.Utc, _timeZoneEx);
var convertedResultex = DateTime.SpecifyKind(resultex, DateTimeKind.Local);

// shows 2015-08-24 7:00:00 AM 
Console.WriteLine(convertedResultex.ToString("yyyy-MM-dd hh:mm:ss"));

看到结果了吗?这是不同的。期待参考。谢谢

如果您查看 SupportsDaylightSavingTime 属性,它应该会变得很明显 - Mountain Standard Time 支持它,而 US Mountain Standard Time 不支持 支持它(因此有一个小时的差异)。