Ref T308, if QDateTime is invalid (normal state) setting a offset turns it into a valid timestamp of 1970 (which is wrong)

This commit is contained in:
Klaus Basan
2018-08-21 22:05:39 +02:00
parent 536cf15d37
commit 433818ca4f
2 changed files with 9 additions and 4 deletions

View File

@@ -261,15 +261,19 @@ namespace BlackMisc
QDateTime fromStringUtc(const QString &dateTimeString, const QString &format)
{
if (dateTimeString.isEmpty() || format.isEmpty()) { return QDateTime(); }
QDateTime dt = QDateTime::fromString(dateTimeString, format);
dt.setUtcOffset(0);
if (!dt.isValid()) { return dt; }
dt.setUtcOffset(0); // must only be applied to valid timestamps
return dt;
}
QDateTime fromStringUtc(const QString &dateTimeString, Qt::DateFormat format)
{
if (dateTimeString.isEmpty()) { return QDateTime(); }
QDateTime dt = QDateTime::fromString(dateTimeString, format);
dt.setUtcOffset(0);
if (!dt.isValid()) { return dt; }
dt.setUtcOffset(0); // must only be applied to valid timestamps
return dt;
}