diff options
| -rw-r--r-- | src/local_time.cc | 2 | ||||
| -rw-r--r-- | test/local_time_test.cc | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/local_time.cc b/src/local_time.cc index 7d090304..f125b38f 100644 --- a/src/local_time.cc +++ b/src/local_time.cc @@ -165,7 +165,7 @@ LocalTime::LocalTime (string s) } /* Timezone */ - if (pos != s.length()) { + if (pos != s.length() && s[pos] != 'Z') { if (s[pos] != '+' && s[pos] != '-') { throw TimeFormatError(s); } diff --git a/test/local_time_test.cc b/test/local_time_test.cc index 8d6d997e..894f177b 100644 --- a/test/local_time_test.cc +++ b/test/local_time_test.cc @@ -140,6 +140,19 @@ BOOST_AUTO_TEST_CASE (local_time_basic_test) } { + dcp::LocalTime t("2024-01-23T23:21:32Z"); + BOOST_CHECK_EQUAL(t._year, 2024); + BOOST_CHECK_EQUAL(t._month, 1); + BOOST_CHECK_EQUAL(t._day, 23); + BOOST_CHECK_EQUAL(t._hour, 23); + BOOST_CHECK_EQUAL(t._minute, 21); + BOOST_CHECK_EQUAL(t._second, 32); + BOOST_CHECK_EQUAL(t._millisecond, 0); + BOOST_CHECK(t._offset == dcp::UTCOffset(0, 0)); + BOOST_CHECK_EQUAL(t.as_string(false, false), "2024-01-23T23:21:32"); + } + + { /* Construction from boost::posix_time::ptime */ dcp::LocalTime b (boost::posix_time::time_from_string ("2002-01-20 19:03:56")); BOOST_CHECK_EQUAL (b._year, 2002); |
