问题 Qt C ++将秒转换为格式化字符串(hh:mm:ss)


正如我在标题中所说,我需要将秒转换为hh:mm:ss

我试过这个:

 ui->label->setText(QDateTime::fromTime_t(10).toString("hh:mm:ss"));

但是小时的默认值总是01但我需要它为00.结果我应该得到00:00:10但是我得到01:00:10。


7457
2018-05-07 12:40


起源



答案:


您的时区包含在内,这就是原因。尝试这个:

QDateTime::fromTime_t(10).toUTC().toString("hh:mm:ss");

13
2018-05-07 12:50



我发现这个答案是最好的。谢谢。 - Alen


答案:


您的时区包含在内,这就是原因。尝试这个:

QDateTime::fromTime_t(10).toUTC().toString("hh:mm:ss");

13
2018-05-07 12:50



我发现这个答案是最好的。谢谢。 - Alen


没有 QTime::fromTime_t;可能你正在使用 QDateTime::fromTime_t,它考虑了时区和夏令时。

相反,你可以使用 QTime().addSecs(10).toString(...)


3
2018-05-07 12:49



是的,我正在使用QDateTime :: fromTime_t这是错字,对不起 - Alen
如果你想使用 QTime 你需要使用 QTime(0,0,0,0).addSecs(10).toString(...)。否则 QTime 初始化为NULL并且不会打印任何内容。 - A. Vieira