construyo un QDateTime de una cadena como esta:Convierte un QDateTime en UTC a hora local del sistema
QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
sé que es date
en UTC porque esa es la forma en que se almacena. Pero cuando quiero mostrar esta fecha al usuario, debe estar en la zona horaria local del usuario. date.toLocalTime()
parece prometedor, pero devuelve exactamente la misma fecha!
¿Cómo convierto date
a la hora local del sistema para que se muestre al usuario?
Estas son algunas de las fallas más:
#include <QtCore/QCoreApplication>
#include <QtCore/QDateTime>
#include <QtCore/QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
QDateTime local = date.toLocalTime();
qDebug() << "utc: " << date;
qDebug() << "local: " << local.toString();
qDebug() << "hax: " << local.toString(Qt::SystemLocaleLongDate);
return a.exec();
}
Salida:
utc: QDateTime("Mon Oct 25 10:28:58 2010")
local: "Mon Oct 25 10:28:58 2010"
hax: "Monday, October 25, 2010 10:28:58 AM"
lo probé, no funcionó. ver ediciones para preguntar – andrewrk