В настоящее время у меня есть список DateTimes, сохраненный как дата и время UTC в часовом поясе. Когда я перехожу к конвертации из UTC в местное время и время, когда дата падает на начало стандартного времени Daylight, повторяющийся час составляет 1 утра, а не 2 утра.Какой час повторяется в стандартное время дневного света
Для преобразования с UTC по местному времени я использую следующее. Обратите внимание, что 1am повторяется в local1 и local2. Я ожидал повторить 2 утра.
Что именно?
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Mountain Standard Time");
//UTC time
var utc1 = new DateTime(1990, 10, 28, 7, 0, 0); //This is start of daylight standard time.
var utc2 = new DateTime(1990, 10, 28, 8, 0, 0);
var utc3 = new DateTime(1990, 10, 28, 9, 0, 0);
utc1 = DateTime.SpecifyKind(utc1, DateTimeKind.Utc);
utc2 = DateTime.SpecifyKind(utc2, DateTimeKind.Utc);
utc3 = DateTime.SpecifyKind(utc3, DateTimeKind.Utc);
//Get the local time with adjustment for Daylight standard time, "fall back"
var local1 = TimeZoneInfo.ConvertTimeFromUtc(utc1, tz); //Returns 1am
var local2 = TimeZoneInfo.ConvertTimeFromUtc(utc2, tz); //Returns 1am. Should this be 2am?
var local3 = TimeZoneInfo.ConvertTimeFromUtc(utc3, tz); //Returns 2am