diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-02-09 00:45:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-02-09 00:45:23 +0100 |
| commit | 98052c06cbe3bd156e1a1a715e439944671dc3ee (patch) | |
| tree | 8c02464d4a1d2565273b4842272f7fadc8edfa88 | |
| parent | d1d18d87fa9e0efeb9be78048a54d605ca904735 (diff) | |
Fix use of Z as a timezone (meaning UTC).v1.8.95
| -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); |
