summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/Base/DateTime.cpp10
-rw-r--r--Swiften/Base/UnitTest/DateTimeTest.cpp7
2 files changed, 16 insertions, 1 deletions
diff --git a/Swiften/Base/DateTime.cpp b/Swiften/Base/DateTime.cpp
index 4f55a8e..d19e9c7 100644
--- a/Swiften/Base/DateTime.cpp
+++ b/Swiften/Base/DateTime.cpp
@@ -13,6 +13,7 @@
#include <boost/date_time/c_local_time_adjustor.hpp>
#include <Swiften/Base/String.h>
+#include <Swiften/Base/Log.h>
namespace Swift {
@@ -33,7 +34,14 @@ std::string dateTimeToString(const boost::posix_time::ptime& time) {
}
std::string dateTimeToLocalString(const boost::posix_time::ptime& time) {
- return boost::posix_time::to_simple_string(boost::date_time::c_local_adjustor<boost::posix_time::ptime>::utc_to_local(time));
+ std::string localString;
+ try {
+ localString = boost::posix_time::to_simple_string(boost::date_time::c_local_adjustor<boost::posix_time::ptime>::utc_to_local(time));
+ }
+ catch(std::out_of_range& exception) {
+ SWIFT_LOG(debug) << exception.what() << std::endl;
+ }
+ return localString;
}
}
diff --git a/Swiften/Base/UnitTest/DateTimeTest.cpp b/Swiften/Base/UnitTest/DateTimeTest.cpp
index 936a3ec..a9350fa 100644
--- a/Swiften/Base/UnitTest/DateTimeTest.cpp
+++ b/Swiften/Base/UnitTest/DateTimeTest.cpp
@@ -18,6 +18,7 @@ class DateTimeTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testStringToDateTime_UTC);
CPPUNIT_TEST(testStringToDateTime_WithTimezone);
CPPUNIT_TEST(testDateTimeToString);
+ CPPUNIT_TEST(testDateTimeToLocalStringNotThrowingException);
CPPUNIT_TEST_SUITE_END();
public:
@@ -38,6 +39,12 @@ class DateTimeTest : public CppUnit::TestFixture {
CPPUNIT_ASSERT_EQUAL(std::string("1969-07-21T02:56:15Z"), dateTimeToString(time));
}
+
+ void testDateTimeToLocalStringNotThrowingException() {
+ boost::posix_time::ptime time = stringToDateTime("1954-07-20T21:56:15-05:00");
+
+ CPPUNIT_ASSERT_EQUAL(std::string(""), dateTimeToLocalString(time));
+ }
};
CPPUNIT_TEST_SUITE_REGISTRATION(DateTimeTest);