Qt秒到DD HH SS

时间:2012-04-17 15:27:33

标签: c++ qt4 intervals datetime-format duration

使用Qt 4.8如何以DD HH SS格式打印时间?我有秒,我想以这种格式取回一个字符串。

5 个答案:

答案 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小时和一秒或两秒(闰秒)。同样的问题持续数月(显然,因为不同大小的月份是常见的)年(闰日),并且实际上通过以天(周)来定义来继承日问题的任何事情。