使用 Qt 4.8 如何以 DD HH SS 格式打印时间?我有几秒钟,我想以这种格式取回一个字符串。
QDateTime::fromTime_t(seconds).toString("ss hh DD");
见 http://qt-project.org/doc/qt-5.0/qdatetime.html#toString
如果你想要一个持续时间(你的问题真的不清楚),请尝试这样的事情:
QString seconds_to_DHMS(quint32 duration)
{
QString res;
int seconds = (int) (duration % 60);
duration /= 60;
int minutes = (int) (duration % 60);
duration /= 60;
int hours = (int) (duration % 24);
int days = (int) (duration / 24);
if((hours == 0)&&(days == 0))
return res.sprintf("%02d:%02d", minutes, seconds);
if (days == 0)
return res.sprintf("%02d:%02d:%02d", hours, minutes, seconds);
return res.sprintf("%dd%02d:%02d:%02d", days, hours, minutes, seconds);
}
由于服务器正常运行时间以秒为单位,因此可以使用QDateTime
类。
QDateTime::fromTime_t(duration).toUTC().toString("dd hh ss");
请注意toUTC
,即将开始小时设置为 0。由于您只会记录日期、小时和秒,因此秒数是否自该日期以来并不重要,因为不会显示年份。
您可以使用 QDateTime::fromTime_t :
返回一个日期时间,其日期和时间是自 1970-01-01T00:00:00(协调世界时 (Qt::UTC) 以来经过的秒数。
您要打印的是持续时间...不是时钟时间的"时刻"。 QDateTime除了计算secsTo(和daysTo)之外,对持续时间没有太多作用,而且你几乎必须自己打印。
好消息是数学并不难:
将秒转换为天,分钟和秒
尽管您对秒/天/年等单词的国际化可能会令人讨厌。 :(
数学非常困难。天不是 24 小时,它们通常是 24 小时,但有时是 23 或 25(夏令时变化)或 24 小时零一两秒(闰秒)。同样的问题适用于几个月(显然,因为不同大小的月份很常见)年(闰日),以及实际上任何通过用天(周)定义来继承日问题的东西。