У нас была проблема, когда один разработчик создает код ниже, и он работает на его среде DEV. Но когда он проверяется в QA, код прерывается с приведенным ниже сообщением об ошибке:
myRecord.UTCStartTime = TimeZoneInfo.ConvertTimeToUtc(myRecord.StartTime, myTimeZone);
Преобразование не может быть завершено, потому что в поставляемом DateTime не было правильно задано свойство Kind. Например, когда свойство Kind является DateTimeKind.Local, часовой пояс источника должен быть TimeZoneInfo.Local.
В моей среде DEV приведенный выше код генерирует ту же ошибку, что и сервер QA. Я применил следующее изменение, чтобы исправить проблему:
DateTime utcStart = DateTime.SpecifyKind(myRecord.StartTime, DateTimeKind.Unspecified);
myRecord.UTCStartTime = TimeZoneInfo.ConvertTimeToUtc(utcStart, myTimeZone);
Почему первый пример кода работает в среде DEV1, но прерывается в моей среде DEV и на нашем сервере QA?