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
。