diff --git a/plugins/amda/src/AmdaResultParser.cpp b/plugins/amda/src/AmdaResultParser.cpp index 2532b15..497d5b4 100644 --- a/plugins/amda/src/AmdaResultParser.cpp +++ b/plugins/amda/src/AmdaResultParser.cpp @@ -24,6 +24,9 @@ const auto RESULT_LINE_SEPARATOR = QRegularExpression{QStringLiteral("\\s+")}; /// the file const auto DATA_HEADER_REGEX = QRegularExpression{QStringLiteral("#\\s*DATA\\s*:")}; +/// Format for dates in result files +const auto DATE_FORMAT = QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"); + /// Regex to find unit in a line. Examples of valid lines: /// ... PARAMETER_UNITS : nT ... /// ... PARAMETER_UNITS:nT ... @@ -31,12 +34,21 @@ const auto DATA_HEADER_REGEX = QRegularExpression{QStringLiteral("#\\s*DATA\\s*: /// ... PARAMETER_UNITS : m/s ... const auto UNIT_REGEX = QRegularExpression{QStringLiteral("\\s*PARAMETER_UNITS\\s*:\\s*(.+)")}; +QDateTime dateTimeFromString(const QString &stringDate) noexcept +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) + return QDateTime::fromString(stringDate, Qt::ISODateWithMs); +#else + return QDateTime::fromString(stringDate, DATE_FORMAT); +#endif +} + /// Converts a string date to a double date /// @return a double that represents the date in seconds, NaN if the string date can't be converted double doubleDate(const QString &stringDate) noexcept { // Format: yyyy-MM-ddThh:mm:ss.zzz - auto dateTime = QDateTime::fromString(stringDate, Qt::ISODateWithMs); + auto dateTime = dateTimeFromString(stringDate); dateTime.setTimeSpec(Qt::UTC); return dateTime.isValid() ? DateUtils::secondsSinceEpoch(dateTime) : std::numeric_limits::quiet_NaN();