Как получить текущую метку времени? - PullRequest
42 голосов
/ 06 мая 2010

Я пытаюсь получить текущее время как TimeStamp без успеха.

У меня есть этот код:

QDateTime setTime = QDateTime::fromString (QString("1970-07-18T14:15:09"), Qt::ISODate);
QDateTime current = QDateTime::currentDateTime();
uint msecs = setTime.time().msecsTo(current.time());

return  QString::number(msecs);

Выход

Sunday, January 25th 1970, 03:17:35 (GMT)

Ответы [ 3 ]

76 голосов
/ 16 декабря 2010

В Qt 4.7 есть статическая функция QDateTime::currentMSecsSinceEpoch(), которая делает именно то, что вам нужно, без каких-либо промежуточных шагов.Поэтому я бы порекомендовал это для проектов, использующих Qt 4.7 или новее.

35 голосов
/ 06 мая 2010

Я думаю, что вы ищете эту функцию:

http://doc.qt.io/qt-5/qdatetime.html#toTime_t

uint QDateTime :: toTime_t () const

Возвращает дату и время в виде количества секунд, прошедших с 1970-01-01TT: 00: 00,> Всемирное координированное время (Qt :: UTC).

В системах, которые не поддерживают часовые пояса, эта функция будет работать так, как если бы местное время было Qt :: UTC.

См. Также setTime_t ().

2 голосов
/ 28 сентября 2018

Начиная с Qt 5.8, теперь у нас есть QDateTime::currentSecsSinceEpoch() для прямой доставки секунд, например, в виде реальной метки времени Unix. Таким образом, нет необходимости делить результат на 1000, чтобы больше получать секунды.

Кредиты: также опубликовано как комментарий к этому ответу . Тем не менее, я думаю, что легче найти отдельный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...