2

使用 Qt 4.8 如何以 DD HH SS 格式打印时间?我有几秒钟,我想取回该格式的字符串。

4

5 回答 5

8
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);
}
于 2012-04-17T15:56:29.487 回答
1

由于您的服务器正常运行时间为秒,因此您可以使用QDateTime该类。

QDateTime::fromTime_t(duration).toUTC().toString("dd hh ss");

请注意toUTC,将开始时间设置为 0。由于您只会获取日期、小时和秒,因此如果秒不是自该日期起并不重要,因为不会显示年份。

于 2015-06-01T15:20:29.970 回答
0

您可以使用QDateTime::fromTime_t

返回一个日期时间,其日期和时间是自协调世界时 (Qt::UTC) 1970-01-01T00:00:00 以来经过的秒数。

于 2012-04-17T15:46:06.703 回答
0

您要打印的是一段时间......而不是时钟时间的“时刻”。除了计算secsTo(和daysTo)之外,QDateTime 对持续时间的作用不大,而且您几乎必须自己打印。

好消息是数学并不难:

将秒转换为天、分和秒

尽管您对诸如//之类的词的国际化可能会令人讨厌。:(

于 2012-04-17T16:28:58.333 回答
0

数学非常难。天不是 24 小时,它们通常是 24 小时,但有时是 23 或 25(夏令时更改)或 24 小时和一两秒(闰秒)。同样的问题会持续数月(显然,因为不同大小的月份很常见)年(闰日),实际上任何通过以天(周)定义来继承当天问题的东西。

于 2013-07-06T19:31:40.597 回答