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()
.
要吸取的教训是仔细检查调试器是否告诉你真相。
为什么调试器中显示的值应该是错误的,我不确定...
我收到来自 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()
.
要吸取的教训是仔细检查调试器是否告诉你真相。
为什么调试器中显示的值应该是错误的,我不确定...