我正在开发运行24/7/365全天候GPS设备报告的软件。部分报告输出要求我们将存储的数据库时间(保留在中央标准时间)转换为用户计时器(任何请求的时区)。当人们每天运行两次报告时,我们会遇到DST问题,这些报告会在时间更改之前开始并结束。它未能在一个行:转换DayLight附近的日期时间节省时间?
return TimeZoneInfo.ConvertTime(dateToConvert, DatabaseTime, UserTime);
dateToConvert
是要转换一个DateTime
。 DatabaseTime
和UserTime
都是TimeZoneInfo
对象。我没有做任何棘手或复杂的事情,但靠近DST时间更改的日期时间会引发异常。例如3/10/2013 2:02:11 AM
即使它正在从中央时间“转换”到中央时间。
在DST时间变化附近处理DateTimes的最佳方法是什么?
这可能更大修的比你想要的,但它可能是更好的储存所有的日期/格林尼治标准时间(因为CST经历了DST的变化,也有规模不连续性是在格林尼治标准时间不在那里),只有转换为显示目的(以及可能转换输入参数)。 – twalberg 2013-03-18 17:23:48
如果我从头开始,我肯定会这样做。我喜欢这些数据尽可能中立的想法,我认为这将是实现这一目标的方式。 – 2013-03-18 17:28:07
只是为了确认:是否有可能在数据库中存储'3/10/2013 2:02:11 AM',因为它在跳过的小时内? – 2013-03-18 17:31:21