#2066 Add std::string to date parser

This commit is contained in:
Magne Sjaastad 2017-11-02 18:56:58 +01:00
parent 8853021403
commit 02cd42aa54
2 changed files with 14 additions and 5 deletions

View File

@ -41,17 +41,25 @@ const std::string MONTH_NAMES[] =
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaDateStringParser::parseDateString(const QString& dateString)
{
return RiaDateStringParser::parseDateString(dateString.toStdString());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaDateStringParser::parseDateString(const std::string& dateString)
{
int year, month, day;
std::string s = dateString.toStdString();
bool parsedOk =
tryParseYearFirst(s, year, month, day) ||
tryParseDayFirst(s, year, month, day) ||
tryParseMonthFirst(s, year, month, day);
bool parsedOk =
tryParseYearFirst(dateString, year, month, day) ||
tryParseDayFirst(dateString, year, month, day) ||
tryParseMonthFirst(dateString, year, month, day);
QDateTime dt;
dt.setTimeSpec(RiaQDateTimeTools::currentTimeSpec());
if (parsedOk) dt.setDate(QDate(year, month, day));
return dt;
}

View File

@ -31,6 +31,7 @@ class RiaDateStringParser
{
public:
static QDateTime parseDateString(const QString& dateString);
static QDateTime parseDateString(const std::string& dateString);
private:
static bool tryParseYearFirst(const std::string& s, int& year, int& month, int& day);