Qt QDateTime::fromString 使用 Qt::ISODate 给出了不正确的值

Qt QDateTime::fromString gives incorrect value with Qt::ISODate

我收到来自 Clockify JSON API 的回复,其中包含 ISO8601 格式的日期和时间。

字符串的格式对我来说很好,但是当我将它们转换为带有 QDateTime::fromString 的 QDateTime 时,我得到了奇怪且不正确的值:

QString aString          = "2021-09-10T15:56:00Z";
QString aDifferentString = "2021-09-10T15:56:00";
QString theString = durationInfo.value("end").toString();
QDateTime aDateTime = QDateTime::fromString(aString, Qt::ISODate);
QDateTime anotherDateTime = QDateTime::fromString(aString, "yyyy-MM-ddTHH:mm:ssZ");
QDateTime aDifferentDateTime = QDateTime::fromString(aDifferentString, Qt::ISODate);
endTime = QDateTime::fromString(theString,Qt::ISODate);

但是当我调试时,我看到变量在代码具有 运行:

之后具有这些值
DateTime    Thu Jan 31 07:23:38 1974    QDateTime
aDifferentDateTime  Sat Nov 27 22:39:02 1971    QDateTime
aDifferentString    "2021-09-10T15:56:00"   QString
aString "2021-09-10T15:56:00Z"  QString
anotherDateTime Sat Nov 27 22:39:02 1971    QDateTime
endTime Thu Jan 31 07:23:38 1974    QDateTime
theString   "2021-09-10T15:56:00Z"  QString

我是不是遗漏了什么,或者 fromString 函数或格式规范损坏了?我程序中的其余逻辑相应地表现得很奇怪,因为日期都是错误的。

我正在使用 Qt Creator 4.13.0

基于 Qt 5.15.0(MSVC 2019,64 位)

2020 年 8 月 25 日建成10:06:59

来自修订版 fff3b41833

这里的问题is/was调试器中Qt类型的显示。

变量视图显示 QDateTime 变量(可能还有其他变量)的错误值。如果将它们传递给 与打印的值 不同 ,例如 qDebug().

要吸取的教训是仔细检查调试器是否告诉你真相。

为什么调试器中显示的值应该是错误的,我不确定...