Save the work.
This commit is contained in:
parent
b0596c092e
commit
0782a948d6
2 changed files with 32 additions and 8 deletions
|
@ -18,20 +18,44 @@ QDateTime TextFactory::parseDateTime(const QString &date_time) {
|
||||||
QString temp;
|
QString temp;
|
||||||
QLocale locale(QLocale::C);
|
QLocale locale(QLocale::C);
|
||||||
QStringList date_patterns;
|
QStringList date_patterns;
|
||||||
|
QStringList timezone_offset_patterns;
|
||||||
QTime time_zone_offset;
|
QTime time_zone_offset;
|
||||||
|
//QRegExp timezone_rexp;
|
||||||
bool positive_time_zone_offset = false;
|
bool positive_time_zone_offset = false;
|
||||||
|
|
||||||
|
date_patterns << "yyyy-MM-ddTHH:mm:ss" << "MMM dd yyyy hh:mm:ss" <<
|
||||||
|
"MMM d yyyy hh:mm:ss" << "ddd, dd MMM yyyy HH:mm:ss" <<
|
||||||
|
"dd MMM yyyy" << "yyyy-MM-dd HH:mm:ss.z" << "yyyy-MM-dd" <<
|
||||||
|
"yyyy" << "yyyy-MM" << "yyyy-MM-dd" << "yyyy-MM-ddThh:mm" <<
|
||||||
|
"yyyy-MM-ddThh:mm:ss";
|
||||||
|
|
||||||
|
timezone_offset_patterns << "[+-]\\d\\d:\\d\\d$" << // ±[hh]:[mm]
|
||||||
|
"[+-]\\d\\d\\d\\d$" << // ±[hh][mm]
|
||||||
|
"[+-]\\d\\d$"; // ±[hh]
|
||||||
|
|
||||||
|
|
||||||
|
/*if (date.size() > 7) {
|
||||||
|
int index = date.size() - 7;
|
||||||
|
|
||||||
|
foreach (const QString &pattern, timezone_offset_patterns) {
|
||||||
|
timezone_rexp.setPattern(pattern);
|
||||||
|
|
||||||
|
int index_start_timezone = timezone_rexp.indexIn(date, index);
|
||||||
|
|
||||||
|
if (index_start_timezone != 1) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// TODO: Patterny revidovat a nejdriv u predaneho stringu
|
// TODO: Patterny revidovat a nejdriv u predaneho stringu
|
||||||
// hledat +,- znak, je li nalezen tak odriznout vse vpravo od nej
|
// hledat +,- znak, je li nalezen tak odriznout vse vpravo od nej
|
||||||
// a to (mozna pomoci vice patternů) konvertovat na QTime (offset)
|
// a to (mozna pomoci vice patternů) konvertovat na QTime (offset)
|
||||||
// pote konvertovat zaklad date/time co je vlevo od -,+
|
// pote konvertovat zaklad date/time co je vlevo od -,+
|
||||||
// a na konec pricist/odecist offse.
|
// a na konec pricist/odecist offse.
|
||||||
|
|
||||||
date_patterns << "yyyy-MM-ddTHH:mm:ss" << "MMM dd yyyy hh:mm:ss" <<
|
|
||||||
"MMM d yyyy hh:mm:ss" << "ddd, dd MMM yyyy HH:mm:ss" <<
|
|
||||||
"dd MMM yyyy" << "yyyy-MM-dd HH:mm:ss.z" << "yyyy-MM-dd" <<
|
|
||||||
"yyyy" << "yyyy-MM" << "yyyy-MM-dd" << "yyyy-MM-ddThh:mm" <<
|
|
||||||
"yyyy-MM-ddThh:mm:ss";
|
|
||||||
|
|
||||||
// Check if last part of date is time zone offset,
|
// Check if last part of date is time zone offset,
|
||||||
// represented as [+|-]hh:mm.
|
// represented as [+|-]hh:mm.
|
||||||
|
@ -74,10 +98,10 @@ QDateTime TextFactory::parseDateTime(const QString &date_time) {
|
||||||
|
|
||||||
if (time_zone_offset.isValid()) {
|
if (time_zone_offset.isValid()) {
|
||||||
if (positive_time_zone_offset) {
|
if (positive_time_zone_offset) {
|
||||||
return dt.addSecs(QTime(0, 0, 0, 0).secsTo(time_zone_offset));
|
return dt.addSecs(- QTime(0, 0, 0, 0).secsTo(time_zone_offset));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return dt.addSecs(- QTime(0, 0, 0, 0).secsTo(time_zone_offset));
|
return dt.addSecs(QTime(0, 0, 0, 0).secsTo(time_zone_offset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -13,7 +13,7 @@ class TextFactory {
|
||||||
explicit TextFactory();
|
explicit TextFactory();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static bool isCaseInsensitiveLessThan(const QString &lhs, const QString &rhs) {
|
static inline bool isCaseInsensitiveLessThan(const QString &lhs, const QString &rhs) {
|
||||||
return lhs.toLower() < rhs.toLower();
|
return lhs.toLower() < rhs.toLower();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue