Qt 为什么我获取无效的QDateTime对象?

Qt 为什么我获取无效的QDateTime对象?,qt,Qt,我的代码如下所示 std::string date = "04/05/2015 02:07"; std::string format = "MM/dd/yyyy HH:mm"; QDateTime dateTime = QDateTime::fromString(date.c_str(), format.c_str()); bool isItValid = dateTime.isValid(); 这是我使用的函数的一部分,但我将问题缩小到了日期的特定值。执行后,isItValid为fals

我的代码如下所示

std::string date = "04/05/2015 02:07";
std::string format = "MM/dd/yyyy HH:mm";

QDateTime dateTime = QDateTime::fromString(date.c_str(), format.c_str());

bool isItValid = dateTime.isValid();
这是我使用的函数的一部分,但我将问题缩小到了日期的特定值。执行后,
isItValid
false
。为什么这不是一个有效的日期

然而,如果我尝试

bool isItValid = dateTime.date().isValid() && dateTime.time().isValid();
这个值是真的


谁能指出那个日期有什么问题吗?我遗漏了什么?

isValid()的文档说明:

如果日期和时间均有效且有效,则返回true 在当前Qt::TimeSpec中有效,否则返回false

如果timeSpec()是Qt::LocalTime或Qt::TimeZone,则日期和 检查时间,以查看它们是否落在日光的标准时间内 时间转换小时,即如果转换时间为凌晨2点且时钟 前进到凌晨3点,则从02:00:00到02:59:59.999的时间为 被认为是无效的


看来您缺少的是Qt::TimeSpec

我已尝试检查
dateTime.timeSpec()的值,并将其打印到控制台,但没有显示任何内容。另外,我不理解文档提供的示例,你能帮我理解吗?是不是有些日期总是无效?对我来说,使用您提供的代码,两者都是有效的。什么是您的
timespec()
?我的是0,所以
Qt::LocalTime