我遇到以下代码的问题:
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秒"
救命 :)
这是因为您没有将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)