我对以下代码有疑问:
QDateTime test2;
test2.setTime_t(25);
qDebug() << test2.toString("hh:mm:ss");
这将打印“01:00:25”而不是 00:00:25。 为什么第一个小时设置为 01 而不是 00?
我认为可能使用了 am/pm 符号,所以我尝试了这个
QDateTime test2;
test2.setTime_t(3600*22+25);
qDebug() << test2.toString("hh:mm:ss");
我仍然收到输出
“23:00:25”
帮助:)
最佳答案
这是因为您没有将 QDateTime 设置为 UTC。那么,UTC 时间 1970 年 1 月 1 日的 00:00:25 可能是您本地时区的 01:00:25?你的代码在 UTC+10 对我来说是“10:00:25”:)
试试这个:
QDateTime test2;
test2.setTimeSpec(Qt::UTC);
test2.setTime_t(25);
qDebug() << test2.toString("hh:mm:ss");
关于c++ - 在 QDateTime 中格式化小时数的 Qt4 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559226/