2010-05-06 45 views
37

Estoy tratando de obtener la hora actual como TimeStamp sin éxito.¿Cómo obtener el sello de hora actual?

tengo este código:

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 salida es

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

¿Qué quiere decir exactamente con timestamp? Por favor, proporcione el resultado esperado. – chalup

+1

unix time == timestamp – user63898

Respuesta

34

Creo que busca esta función:

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

uint QDateTime :: toTime_t() const

Devuelve la fecha y hora como la cantidad de segundos transcurridos desde 1970-01-01T00: 00: 00,> Hora universal coordinada (Qt :: UTC).

En sistemas que no admiten zonas horarias, esta función se comportará como si la hora local fuera Qt :: UTC.

Véase también setTime_t().

+1

lo hice: QDateTime current = QDateTime :: currentDateTime(); uint timestame = current.toTime_t(); , pero no me dio la fecha actual después de que probé el resultado aquí: http://www.4webhelp.net/us/timestamp.php – user63898

+2

intenté pasar cadena devuelta por QDateTime :: currentDateTime(). toTime_t() a este sitio y obtuve la hora correcta. Tal vez establezca la zona horaria incorrecta en el formulario de este sitio. – VestniK

+0

También recibí la hora correcta, usando el mismo código. – Jack

65

En Qt 4.7, existe la función estática QDateTime::currentMSecsSinceEpoch(), que hace exactamente lo que necesita, sin ningún tipo de pasos intermedios. Por lo tanto, lo recomendaría para proyectos que usan Qt 4.7 o posterior.

+9

Tenga en cuenta que esto devuelve el intervalo en ** milisegundos ** y no en segundos. ¡Así que no es hora de Unix! – drzymala

+2

Simplemente hazlo (QDateTime :: currentMSecsSinceEpoch()/1000) que debería convertirlo en tiempo Unix: P –

+0

¡Esta respuesta me hace perder el tiempo! porque esta no es exactamente la hora de Unix como se menciona @martini. –