#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) QDateTime RiaDateStringParser::parseDateString(const QString& dateString)
{
return RiaDateStringParser::parseDateString(dateString.toStdString());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QDateTime RiaDateStringParser::parseDateString(const std::string& dateString)
{ {
int year, month, day; int year, month, day;
std::string s = dateString.toStdString();
bool parsedOk = bool parsedOk =
tryParseYearFirst(s, year, month, day) || tryParseYearFirst(dateString, year, month, day) ||
tryParseDayFirst(s, year, month, day) || tryParseDayFirst(dateString, year, month, day) ||
tryParseMonthFirst(s, year, month, day); tryParseMonthFirst(dateString, year, month, day);
QDateTime dt; QDateTime dt;
dt.setTimeSpec(RiaQDateTimeTools::currentTimeSpec()); dt.setTimeSpec(RiaQDateTimeTools::currentTimeSpec());
if (parsedOk) dt.setDate(QDate(year, month, day)); if (parsedOk) dt.setDate(QDate(year, month, day));
return dt; return dt;
} }

View File

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