time/ISO8601: support omitting minutes
This commit is contained in:
parent
3db584a3ea
commit
d7dbf47a3f
|
@ -138,6 +138,8 @@ ParseISO8601(const char *s)
|
|||
precision = std::chrono::seconds(1);
|
||||
else if ((end = strptime(s, "%H:%M", &tm)) != nullptr)
|
||||
precision = std::chrono::minutes(1);
|
||||
else if ((end = strptime(s, "%H", &tm)) != nullptr)
|
||||
precision = std::chrono::hours(1);
|
||||
else
|
||||
throw std::runtime_error("Failed to parse time of day");
|
||||
|
||||
|
|
|
@ -62,6 +62,10 @@ static constexpr struct {
|
|||
{ "2019-02-04T16:46", 1549298760, std::chrono::minutes(1) },
|
||||
{ "2019-02-04T16:46Z", 1549298760, std::chrono::minutes(1) },
|
||||
|
||||
/* without minutes */
|
||||
{ "2019-02-04T16", 1549296000, std::chrono::hours(1) },
|
||||
{ "2019-02-04T16Z", 1549296000, std::chrono::hours(1) },
|
||||
|
||||
/* with time zone */
|
||||
{ "2019-02-04T16:46:41+02", 1549291601, std::chrono::seconds(1) },
|
||||
{ "2019-02-04T16:46:41+0200", 1549291601, std::chrono::seconds(1) },
|
||||
|
|
Loading…
Reference in New Issue