从一个时区转换到另一个时区的有关问题

从一个时区转换到另一个时区的问题
本帖最后由 sssanton 于 2014-11-14 12:18:44 编辑
 public static TimeZoneInfo currentTimezone;
 currentTimezone = toolStripComboBox1.SelectedItem as TimeZoneInfo;

DateTime startTime = TimeZoneInfo.ConvertTime(dateTimePickerAlarmTime1.Value, currentTimezone, TimeZoneInfo.Utc);
DateTime endTime = TimeZoneInfo.ConvertTime(dateTimePickerAlarmTime2.Value, currentTimezone, TimeZoneInfo.Utc);

上面的语句为什么要点击dateTimePicker控件设置一下才能通过?

"System.ArgumentException: 无法完成转换,因为所提供 DateTime 的 Kind 属性设置不正确。例如,如果 Kind 属性设置为 DateTimeKind.Local,则源时区必须为 TimeZoneInfo.Local。"


------解决思路----------------------
因为默认dateTimePicker的Value是DateTime.Now,这个值的Kind是Local的,不能把它当作非本地时间来转换。
把它转换成Unspecified的就好了

DateTime startTime = TimeZoneInfo.ConvertTime(DateTime.SpecifyKind(dateTimePickerAlarmTime1.Value, DateTimeKind.Unspecified), currentTimezone, TimeZoneInfo.Utc);