我從這樣的字符串構建一個QDateTime:在UTC轉換一個QDateTime到本地系統時間
QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
我知道date
是UTC,因爲這是它的存儲方式。但是當我想將這個日期顯示給用戶時,它應該在用戶的本地時區中。 date.toLocalTime()
看起來很有前途,但它會返回完全相同的日期!
如何將date
轉換爲系統的本地時間以顯示給用戶?
下面是一些故障:
#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();
}
輸出:
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"
試了一下,沒有工作。請參閱編輯以提問 – andrewrk 2010-10-27 07:01:14