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

Ale*_*len 15 c++ qt

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

我试过这个:

 ui->label->setText(QDateTime::fromTime_t(10).toString("hh:mm:ss"));
Run Code Online (Sandbox Code Playgroud)

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

thu*_*uga 15

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

QDateTime::fromTime_t(10).toUTC().toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)


eca*_*mur 5

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

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

  • 如果你想使用`QTime`,你需要使用`QTime(0,0,0,0).addSecs(10).toString(...)`。否则,“QTime”将被初始化为 NULL 并且不会打印任何内容。 (4认同)