最佳答案
我们遇到了一个问题,一个开发人员创建了下面的代码,并且它可以在他的 DEV 环境中工作。但是,当它签入 QA 时,代码会与下面的错误消息断开:
myRecord.UTCStartTime = TimeZoneInfo.ConvertTimeToUtc(myRecord.StartTime, myTimeZone);
由于提供的 DateTime,无法完成转换 没有正确设置 Kind 属性。例如,当 Kind 属性是 DateTimekind。本地,源时区必须是 时区信息,本地信息。
在我的 DEV 环境中,上面的代码生成与 QA 服务器相同的错误。我应用了下面的修改来解决这个问题:
DateTime utcStart = DateTime.SpecifyKind(myRecord.StartTime, DateTimeKind.Unspecified);
myRecord.UTCStartTime = TimeZoneInfo.ConvertTimeToUtc(utcStart, myTimeZone);
为什么第一个代码示例在 Dev1的环境中工作,但在我的 DEV 环境和我们的 QA 服务器上中断?