Improve date parser to work better with some GeoMech time step names

This commit is contained in:
Gaute Lindkvist 2020-01-22 10:36:22 +01:00
parent dc4d4e0fa2
commit df5ba4c0d1
2 changed files with 11 additions and 5 deletions

View File

@ -47,11 +47,17 @@ QDateTime RiaDateStringParser::parseDateString( const std::string& dateString )
tryParseDayFirst( dateString, year, month, day ) ||
tryParseMonthFirst( dateString, year, month, day );
}
else if ( !RiaStdStringTools::containsAlphabetic( dateString ) )
if ( !parsedOk )
{
parsedOk = tryParseYearFirstNoSeparators( dateString, year, month, day ) ||
tryParseDayFirstNoSeparators( dateString, year, month, day ) ||
tryParseMonthFirstNoSeparators( dateString, year, month, day );
auto firstNumerical = dateString.find_first_of( "0123456789" );
if ( firstNumerical != std::string::npos )
{
std::string subString = dateString.substr( firstNumerical );
parsedOk = tryParseYearFirstNoSeparators( subString, year, month, day ) ||
tryParseDayFirstNoSeparators( subString, year, month, day ) ||
tryParseMonthFirstNoSeparators( subString, year, month, day );
}
}
QDateTime dt;

View File

@ -111,7 +111,7 @@ TEST( RiaDateStringParserTest, ParseWithoutSeparators )
may2ndDT.setTimeSpec( RiaQDateTimeTools::currentTimeSpec() );
feb5thDT.setTimeSpec( RiaQDateTimeTools::currentTimeSpec() );
std::vector<std::string> may2ndStrings = {"20110502", "02052011"};
std::vector<std::string> may2ndStrings = {"20110502", "02052011", "Date_20110502"};
for ( auto may2ndString : may2ndStrings )
{
QDateTime parsedDate = RiaDateStringParser::parseDateString( may2ndString );