我正在开发一个软件,用于为全年无休运行的GPS设备生成报告。报告输出的一部分需要将我们存储的数据库时间(保存在中央标准时间)转换为用户所需的时区。每年两次夏令时切换时,当人们运行在时刻变更之前开始并在之后结束的报告时,会遇到问题。它会在一行代码上失败:
return TimeZoneInfo.ConvertTime(dateToConvert, DatabaseTime, UserTime);
dateToConvert
是待转换的DateTime
对象。 DatabaseTime
和UserTime
都是TimeZoneInfo
对象。在处理靠近夏令时转换时间的DateTimes时,不要尝试任何巧妙或复杂的操作,否则会出现异常,例如3/10/2013 2:02:11 AM
, 尽管它从中央时间转换到中央时间。
如何最好地处理靠近夏令时变更的DateTimes?