conversion/commonconversion.cpp tests/timezonetest.cpp tests/timezonetest.h
Christian Mollekopf
mollekopf at kolabsys.com
Wed Nov 13 14:12:34 CET 2013
conversion/commonconversion.cpp | 7 +++++++
tests/timezonetest.cpp | 8 ++++++++
tests/timezonetest.h | 1 +
3 files changed, 16 insertions(+)
New commits:
commit cd2e03138691d4e7a7e08b12f438f4a80cc7c513
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Wed Nov 13 14:07:38 2013 +0100
Convert utc offset date times to utc.
diff --git a/conversion/commonconversion.cpp b/conversion/commonconversion.cpp
index 3546395..7accd22 100644
--- a/conversion/commonconversion.cpp
+++ b/conversion/commonconversion.cpp
@@ -88,6 +88,13 @@ cDateTime fromDate(const KDateTime &dt)
date.setTime(t.hour(), t.minute(), t.second());
if (dt.timeType() == KDateTime::UTC) { //UTC
date.setUTC(true);
+ } else if (dt.timeType() == KDateTime::OffsetFromUTC) {
+ const KDateTime utcDate = dt.toUtc();
+ const QDate &d = utcDate.date();
+ date.setDate(d.year(), d.month(), d.day());
+ const QTime &t = utcDate.time();
+ date.setTime(t.hour(), t.minute(), t.second());
+ date.setUTC(true);
} else if (dt.timeType() == KDateTime::TimeZone) { //Timezone
//TODO handle local timezone?
//Convert non-olson timezones if necessary
diff --git a/tests/timezonetest.cpp b/tests/timezonetest.cpp
index d2c49b7..d382425 100644
--- a/tests/timezonetest.cpp
+++ b/tests/timezonetest.cpp
@@ -17,6 +17,7 @@
#include "timezonetest.h"
#include <conversion/timezoneconverter.h>
+#include <conversion/commonconversion.h>
#include <kolabformat/kolabobject.h>
#include <kolabformat/errorhandler.h>
#include "testutils.h"
@@ -168,6 +169,13 @@ void TimezoneTest::testTimezoneDaemonAvailable()
QVERIFY(KSystemTimeZones::isTimeZoneDaemonAvailable());
}
+void TimezoneTest::testUTCOffset()
+{
+ const Kolab::cDateTime expected(2013, 10, 23, 2, 0 ,0, true);
+ const KDateTime input(KDateTime::fromString("2013-10-23T04:00:00+02:00", KDateTime::RFC3339Date));
+ const Kolab::cDateTime result = Kolab::Conversion::fromDate(input);
+ QCOMPARE(result, expected);
+}
QTEST_MAIN( TimezoneTest )
diff --git a/tests/timezonetest.h b/tests/timezonetest.h
index ed2f33f..fa518a6 100644
--- a/tests/timezonetest.h
+++ b/tests/timezonetest.h
@@ -35,6 +35,7 @@ private slots:
void testKolabObjectReader();
void testFindLegacyTimezone();
void testTimezoneDaemonAvailable();
+ void testUTCOffset();
};
#endif // TIMEZONETEST_H
More information about the commits
mailing list