Ошибка преобразования часового пояса

Я получаю эту ошибку при преобразовании "11-06-2018 17:00:00" из {(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi} в {(UTC-06:00) Central Time (US & Canada)}:

   StartDate = meetingRequest.Start.ToString(); 
   TimeZone = meetingRequest.TimeZone;

   var AllTimeZones = TimeZoneInfo.GetSystemTimeZones(); 

   foreach (TimeZoneInfo timeZoneInfo in AllTimeZones) { 
     if (timeZoneInfo.ToString() == TimeZone) { 
       TimeZoneInfo ActualTimeZone = timeZoneInfo; 

       var MeetingWindowStartDate = TimeZoneInfo.ConvertTime(
            meetingRequest.Start, 
            ActualTimeZone, 
            service.TimeZone); 
      }

Преобразование не может быть завершено, так как для предоставленного DateTime свойство Kind не установлено правильно. Например, если свойство Kind имеет значение DateTimeKind.Local, исходный часовой пояс должен быть TimeZoneInfo.Local.\r\nИмя параметра: sourceTimeZone"


person user9334708    schedule 26.07.2018    source источник
comment
Пожалуйста, предоставьте соответствующий код   -  person Dmitry Bychenko    schedule 26.07.2018


Ответы (1)


Проблема, безусловно, заключается в том, что у MeetingRequest.Start нет DateTimeKind, поэтому преобразование часового пояса не может работать, потому что оно не может предположить, из какого часового пояса оно преобразуется в первую очередь.

Используйте DateTime.SpecifyKind, чтобы установить его, тогда он должен работать.

person Mark Bennetts    schedule 26.07.2018