使用Qt 4.8如何以DD HH SS格式打印时间?我有秒,我想以这种格式取回一个字符串。
答案 0 :(得分:6)
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);
}
答案 1 :(得分:1)
由于服务器正常运行时间为秒,因此您可以使用QDateTime
类。
QDateTime::fromTime_t(duration).toUTC().toString("dd hh ss");
注意toUTC
,将开始时间设置为0.由于您只需要使用日期,小时和秒,如果秒数不是,那真的不重要从那年起,该年份就不会被展示。
答案 2 :(得分:0)
您可以使用QDateTime::fromTime_t:
返回日期时间,其日期和时间是自1970-01-01T00:00:00,协调世界时(Qt :: UTC)以来经过的秒数。
答案 3 :(得分:0)
您想要打印的是一段时间......而不是时钟时间的“时刻”。除了计算secsTo(和daysTo)之外,QDateTime对持续时间的影响不大,而且您几乎不得不自行打印。
好消息是数学并不那么难:
Convert seconds to Days, Minutes and Seconds
虽然您对秒 / 天 / 年等词语的国际化可能会令人讨厌。 :(
答案 4 :(得分:0)
数学难以置信。天不是24小时,通常是24小时,但有时23或25(夏令时变化)或24小时和一秒或两秒(闰秒)。同样的问题持续数月(显然,因为不同大小的月份是常见的)年(闰日),并且实际上通过以天(周)来定义来继承日问题的任何事情。