La conversión de QString contiene PostgreSQL marca de tiempo a QDateTime
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!
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