两个时区是 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
不支持 支持它(因此有一个小时的差异)。
我正在处理时区问题。我这里有一个 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
不支持 支持它(因此有一个小时的差异)。