The C++20 standard defines 2 types that store a time during the day: chrono::hh_mm_ss and chrono::time_of_day.
Both seem to store a duration since midnight, but because of DST-effects, callers should only use the hours, minutes, seconds and subseconds elements.
www.cppreference.com gives exactly the same description for both types:
The class template ... splits a std::chrono::duration representing time since midnight into a "broken down" time such as hours:minutes:seconds, with the precision of the split determined by the Duration template parameter. ... It is primarily a formatting tool.
The only difference seems to be that chrono::time_of_day mentions 12-hour/24-hour formatting and chrono::hh_mm_ss doesn't.
In Howard Hinnant's GitHub library time_of_day is defined like this:
template <class Duration>
using time_of_day = hh_mm_ss<Duration>;
So why have 2 different types for this?