}
/* Timezone */
- if (pos != s.length()) {
+ if (pos != s.length() && s[pos] != 'Z') {
if (s[pos] != '+' && s[pos] != '-') {
throw TimeFormatError(s);
}
BOOST_CHECK_EQUAL(t.as_string(false, false), "2011-11-20T01:06:59");
}
+ {
+ 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"));