Pregunta

tengo problemas con un problema aparentemente muy simple: Quiero conseguir un QDateTime de un QString contiene una marca de tiempo. Tengo la marca de tiempo de PostgreSQL, pero no importa. Aquí está el código que no funciona:

QString timestamp = "2010-10-09 19:21:46+02:00";
QString format = "YYYY-MM-DD HH:MM:SSTZD";
QDateTime dt = QDateTime::fromString(timestamp, format);
qDebug() << dt.toString(); // outputs empty string

No debe ser algo muy obvio que me falta. Gracias!

¿Fue útil?

Solución

Hay dos errores que estaba haciendo. No hay una TZD en las especificaciones de formato, por lo que me quita la información de zona horaria, ya que no lo necesito en mi aplicación haciendo:

timeStamp.chop(6);

Y a continuación, utiliza el siguiente formato para obtener un QDateTime. Tenga en cuenta los caracteres de formato minúsculas:

QDateTime createdAt = QDateTime::fromString(timeStamp, "yyyy-MM-dd HH:mm:ss");

Gracias a todos los anteriores por su ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top