我创建了一个项目,用于在事件之前和之后读取数据。
例如:让D1、D2、D3成为QDateTime对象:
设2014-03-09T2:30:00.值为D1
设2014-03-09T1:30:00.值为D2
设2014-03-09T3:30:00.值为D3
D1.date() will return QDate(2014,3,9).
D1.time() will return QTime(2,30).
D1.toString() will return “”.
(D1 > D2) is true.
(D1 < D2) is false.
(D1 > D3) is false.
(D1 < D3) is true.
(D1 == D1) is true.
D1.secsTo(X) is always 0.
X.secsTo(D1) is always 0, for all X.
在本例中,D1.secsTo(X)用于计算凌晨1:00的报表DST效应发生在2-3 AM之间。
我需要做些什么来纠正这种转变呢?
发布于 2014-03-25 19:20:30
文档声称QDateTime类应该自动处理DST,但这似乎是Qt中的一个错误。我只是尝试使用您提供的输入,如果任何时间都在2-3 AM之间,则secsTo()方法的值为0。它提供了一个正确的偏移,如果我改变时间是在凌晨3点以后。
例如:
D1 = 2:30 AM
D2 = 2:45 AM
D1.secsTo(D2) gives 0
D1 = 3:30 AM
D2 = 3:45 AM
D1.secsTo(D2) gives 900
我申请了一个错误报告。
编辑
一旦修复了错误,您的当前解决方案就可以工作了。在此期间,另一个解决方案可能是在进行任何计算之前将时间戳转换为UTC。QDateTime类有一个toUTC()方法。我认为这应该完全避免DST问题。
https://stackoverflow.com/questions/22623326
复制相似问题