我正在开发为 24/7/365 运行的 GPS 设备运行报告的软件。部分报告输出要求我们将存储的数据库时间(保留在中央标准时间)转换为用户计时器(任何请求的时区)。当人们运行在时间更改前后开始和结束的报告时,我们每年都会遇到两次 DST 问题。它在一行中失败:
return TimeZoneInfo.ConvertTime(dateToConvert, DatabaseTime, UserTime);
dateToConvert
是一个DateTime
要转换的。DatabaseTime
并且UserTime
都是TimeZoneInfo
对象。我没有做任何棘手或复杂的事情,但 DST 时间更改附近的 DateTimes 会引发异常。例如,3/10/2013 2:02:11 AM
即使它正在从中央时间“转换”为中央时间。
在 DST 时间变化附近处理 DateTimes 的最佳方法是什么?