首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的Qt项目中使用QDateTime会在夏令期间引起问题吗?

在我的Qt项目中使用QDateTime会在夏令期间引起问题吗?
EN

Stack Overflow用户
提问于 2014-03-25 00:34:50
回答 1查看 567关注 0票数 0

我创建了一个项目,用于在事件之前和之后读取数据。

例如:让D1、D2、D3成为QDateTime对象:

2014-03-09T2:30:00.值为D1

2014-03-09T1:30:00.值为D2

2014-03-09T3:30:00.值为D3

代码语言:javascript
运行
复制
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之间。

我需要做些什么来纠正这种转变呢?

EN

回答 1

Stack Overflow用户

发布于 2014-03-25 19:20:30

文档声称QDateTime类应该自动处理DST,但这似乎是Qt中的一个错误。我只是尝试使用您提供的输入,如果任何时间都在2-3 AM之间,则secsTo()方法的值为0。它提供了一个正确的偏移,如果我改变时间是在凌晨3点以后。

例如:

代码语言:javascript
运行
复制
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问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22623326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档