#3167 CSV parser. Try a fallback datetime format if parsing fails

This commit is contained in:
Bjørn Erik Jensen 2018-07-06 15:01:25 +02:00
parent 08f516bab4
commit 60146be146
3 changed files with 14 additions and 1 deletions

View File

@ -247,6 +247,11 @@ const AsciiDataParseOptions RicPasteAsciiDataToSummaryPlotFeatureUi::parseOption
parseOptions.dateTimeFormat = parseOptions.dateFormat +
(m_timeFormat() != TimeFormat::TIME_NONE ? " " + parseOptions.timeFormat : "");
}
if (m_timeFormat() == TimeFormat::TIME_NONE)
{
parseOptions.fallbackDateTimeFormat = parseOptions.dateFormat + " " +
RicPasteAsciiDataToSummaryPlotFeatureUi::TimeFormatEnum::text(TIME_HHMM);
}
}
parseOptions.timeSeriesColumnName = m_timeSeriesColumnName();

View File

@ -48,6 +48,7 @@ public:
bool useCustomDateTimeFormat;
QString dateFormat;
QString timeFormat;
QString fallbackDateTimeFormat;
QString dateTimeFormat;
QString cellSeparator;
QString timeSeriesColumnName;

View File

@ -311,7 +311,14 @@ bool RifCsvUserDataParser::parseData(const AsciiDataParseOptions& parseOptions)
if (!dt.isValid() && !parseOptions.useCustomDateTimeFormat)
{
// Try to match date format only
dt = tryParseDateTime(colData.toStdString(), parseOptions.dateFormat);
if (parseOptions.dateFormat != parseOptions.dateTimeFormat)
{
dt = tryParseDateTime(colData.toStdString(), parseOptions.dateFormat);
}
if (!dt.isValid() && !parseOptions.fallbackDateTimeFormat.isEmpty())
{
dt = tryParseDateTime(colData.toStdString(), parseOptions.fallbackDateTimeFormat);
}
}
if (!dt.isValid())