Save the work.
This commit is contained in:
parent
b0596c092e
commit
0782a948d6
@ -18,20 +18,44 @@ QDateTime TextFactory::parseDateTime(const QString &date_time) {
|
||||
QString temp;
|
||||
QLocale locale(QLocale::C);
|
||||
QStringList date_patterns;
|
||||
QStringList timezone_offset_patterns;
|
||||
QTime time_zone_offset;
|
||||
//QRegExp timezone_rexp;
|
||||
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
|
||||
// hledat +,- znak, je li nalezen tak odriznout vse vpravo od nej
|
||||
// a to (mozna pomoci vice patternů) konvertovat na QTime (offset)
|
||||
// pote konvertovat zaklad date/time co je vlevo od -,+
|
||||
// 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,
|
||||
// represented as [+|-]hh:mm.
|
||||
@ -74,10 +98,10 @@ QDateTime TextFactory::parseDateTime(const QString &date_time) {
|
||||
|
||||
if (time_zone_offset.isValid()) {
|
||||
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 {
|
||||
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 {
|
||||
|
@ -13,7 +13,7 @@ class TextFactory {
|
||||
explicit TextFactory();
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user