J'essaie d'obtenir l'heure actuelle en tant que TimeStamp sans succès.
J'ai ce code:
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);
La sortie est
Sunday, January 25th 1970, 03:17:35 (GMT)
Je pense que vous recherchez cette fonction:
http://doc.qt.io/qt-5/qdatetime.html#toTime_t
uint QDateTime :: toTime_t () const
Renvoie le datetime comme le nombre de secondes qui se sont écoulées depuis 1970-01-01T00: 00: 00,> Temps universel coordonné (Qt :: UTC).
Sur les systèmes qui ne prennent pas en charge les fuseaux horaires, cette fonction se comportera comme si l'heure locale était Qt :: UTC.
Voir aussi setTime_t ().
Dans Qt 4.7, il y a la fonction statique QDateTime::currentMSecsSinceEpoch()
, qui fait exactement ce dont vous avez besoin, sans aucune étape intermédiaire. Par conséquent, je recommanderais cela pour les projets utilisant Qt 4.7 ou plus récent.
Depuis Qt 5.8, nous avons maintenant QDateTime::currentSecsSinceEpoch()
pour délivrer les secondes directement, a.k.a. comme un véritable horodatage Unix. Donc, pas besoin de diviser le résultat par 1000 pour obtenir plus de secondes.
Crédits: également publié sous forme de commentaire à cette réponse . Cependant, je pense qu'il est plus facile de trouver s'il s'agit d'une réponse distincte.