tôi xây dựng một QDateTime từ một chuỗi như thế này:Chuyển đổi một QDateTime trong UTC gian hệ thống địa phương
QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
Tôi biết rằng date
là trong UTC bởi vì đó là cách nó được lưu trữ. Nhưng khi tôi muốn hiển thị ngày này cho người dùng, nó phải nằm trong múi giờ địa phương của người dùng. date.toLocalTime()
có vẻ đầy hứa hẹn, nhưng nó trả về cùng ngày chính xác!
Làm cách nào để chuyển đổi date
thành giờ địa phương của hệ thống để hiển thị cho người dùng?
Dưới đây là một số thất bại hơn:
#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();
}
Output:
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"
đã dùng thử, không hoạt động. xem chỉnh sửa cho câu hỏi – andrewrk