Use fromIsoTimeString() in QDateTime::fromString() also for TextDate
That way it'll be consistent with QTime()'s parsing of the time part. Change-Id: I3f66e5686ba6e2ea4bbc2d5a9a29a177de2d9e69 Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
6404084b9c
commit
51a16a6862
@ -4825,46 +4825,11 @@ QDateTime QDateTime::fromString(QStringView string, Qt::DateFormat format)
|
|||||||
if (!ok || !month || !day)
|
if (!ok || !month || !day)
|
||||||
return QDateTime();
|
return QDateTime();
|
||||||
|
|
||||||
QDate date(year, month, day);
|
const QDate date(year, month, day);
|
||||||
if (!date.isValid())
|
if (!date.isValid())
|
||||||
return QDateTime();
|
return QDateTime();
|
||||||
|
|
||||||
// ### fixme, use QStringView::tokenize() when available
|
const QTime time = fromIsoTimeString(parts.at(timePart), format, nullptr);
|
||||||
QList<QStringView> 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<QStringView> 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);
|
|
||||||
if (!time.isValid())
|
if (!time.isValid())
|
||||||
return QDateTime();
|
return QDateTime();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user