From 51a16a686209452e99e281fc1d80170e87ff6fd2 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 30 Sep 2020 11:09:45 +0200 Subject: [PATCH] Use fromIsoTimeString() in QDateTime::fromString() also for TextDate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit That way it'll be consistent with QTime()'s parsing of the time part. Change-Id: I3f66e5686ba6e2ea4bbc2d5a9a29a177de2d9e69 Reviewed-by: Andreas Buhr Reviewed-by: MÃ¥rten Nordheim --- src/corelib/time/qdatetime.cpp | 39 ++-------------------------------- 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index ff4c57b1f8a..da3fee5b812 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -4825,46 +4825,11 @@ QDateTime QDateTime::fromString(QStringView string, Qt::DateFormat format) if (!ok || !month || !day) return QDateTime(); - QDate date(year, month, day); + const QDate date(year, month, day); if (!date.isValid()) return QDateTime(); - // ### fixme, use QStringView::tokenize() when available - QList timeParts = parts.at(timePart).split(QLatin1Char(':')); - if (timeParts.count() < 2 || timeParts.count() > 3) - return QDateTime(); - - int hour = timeParts.at(0).toInt(&ok); - if (!ok) - return QDateTime(); - - int minute = timeParts.at(1).toInt(&ok); - if (!ok) - return QDateTime(); - - int second = 0; - int millisecond = 0; - if (timeParts.count() > 2) { - // ### fixme, use QStringView::tokenize() when available - const QList secondParts = timeParts.at(2).split(QLatin1Char('.')); - if (secondParts.size() > 2) { - return QDateTime(); - } - - second = secondParts.first().toInt(&ok); - if (!ok) { - return QDateTime(); - } - - if (secondParts.size() > 1) { - millisecond = secondParts.last().toInt(&ok); - if (!ok) { - return QDateTime(); - } - } - } - - QTime time(hour, minute, second, millisecond); + const QTime time = fromIsoTimeString(parts.at(timePart), format, nullptr); if (!time.isValid()) return QDateTime();