在QDateTime中格式化小时的Qt4问题

2 c++ qt qt4 qdatetime

我遇到以下代码的问题:

QDateTime test2;
test2.setTime_t(25);
qDebug() << test2.toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

这打印"01:00:25"输出而不是00:00:25.为什么第一个小时设置为01而不是00?

我想也许是am/pm表示法,所以我尝试了这个

QDateTime test2;
test2.setTime_t(3600*22+25);
qDebug() << test2.toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

我仍然收到了输出

"23时00分25秒"

救命 :)

roh*_*npm 6

这是因为您没有将QDateTime设置为UTC.那么,1970年1月1日00:00:25在UTC时间可能是你当地时区的01:00:25?你的代码对我来说是"10:00:25",UTC + 10 :)

试试这个:

QDateTime test2;
test2.setTimeSpec(Qt::UTC);    
test2.setTime_t(25);
qDebug() << test2.toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)