时区转换错误

问题描述 投票:0回答:1

我将"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 \ nParameter name:sourceTimeZone“

c# visual-studio timezone date-conversion
1个回答
0
投票

问题肯定是会议Request.Start没有DateTimeKind所以时区转换无法工作,因为它无法假设它首先从哪个时区转换。

使用DateTime.SpecifyKind来设置它然后它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.