diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-03-02 03:03:44 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-03-02 09:16:58 +0100 |
commit | b54839b8976b5c1455c838828f2bc92cdeb178eb (patch) | |
tree | 35919484c98a541aff87622aef30bee37ef464cf /logic/minecraft/ParseUtils.cpp | |
parent | 80b81c2c1e2185b457d167d3d446ac2e1ca95579 (diff) | |
download | MultiMC-b54839b8976b5c1455c838828f2bc92cdeb178eb.tar MultiMC-b54839b8976b5c1455c838828f2bc92cdeb178eb.tar.gz MultiMC-b54839b8976b5c1455c838828f2bc92cdeb178eb.tar.lz MultiMC-b54839b8976b5c1455c838828f2bc92cdeb178eb.tar.xz MultiMC-b54839b8976b5c1455c838828f2bc92cdeb178eb.zip |
NOISSUE eliminate timestamp strings
Diffstat (limited to 'logic/minecraft/ParseUtils.cpp')
-rw-r--r-- | logic/minecraft/ParseUtils.cpp | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/logic/minecraft/ParseUtils.cpp b/logic/minecraft/ParseUtils.cpp index 8fccf403..473ca1de 100644 --- a/logic/minecraft/ParseUtils.cpp +++ b/logic/minecraft/ParseUtils.cpp @@ -1,23 +1,33 @@ #include <QDateTime> #include <QString> #include "ParseUtils.h" +#include <QDebug> QDateTime timeFromS3Time(QString str) { return QDateTime::fromString(str, Qt::ISODate); } -bool parse_timestamp (const QString & raw, QString & save_here, QDateTime & parse_here) +QString timeToS3Time(QDateTime time) { - save_here = raw; - if (save_here.isEmpty()) - { - return false; - } - parse_here = timeFromS3Time(save_here); - if (!parse_here.isValid()) - { - return false; - } - return true; + // this all because Qt can't format timestamps right. + int offsetRaw = time.offsetFromUtc(); + bool negative = offsetRaw < 0; + int offsetAbs = std::abs(offsetRaw); + + int offsetSeconds = offsetAbs % 60; + offsetAbs -= offsetSeconds; + + int offsetMinutes = offsetAbs % 3600; + offsetAbs -= offsetMinutes; + offsetMinutes /= 60; + + int offsetHours = offsetAbs / 3600; + + QString raw = time.toString("yyyy-MM-ddTHH:mm:ss"); + raw += (negative ? QChar('-') : QChar('+')); + raw += QString("%1").arg(offsetHours, 2, 10, QChar('0')); + raw += ":"; + raw += QString("%1").arg(offsetMinutes, 2, 10, QChar('0')); + return raw; } |