68 static constexpr uint32_t kMaxSecondsPerDay = 60 * 60 * 24u;
88 constexpr explicit TimeOfDay (uint32_t t);
90 explicit constexpr TimeOfDay (
unsigned int hour,
unsigned int minute,
unsigned int seconds = 0);
107 static constexpr string_view kISO8601Format = "%T"sv;
113 static constexpr string_view kLocaleStandardFormat = "%X"sv;
119 static constexpr string_view kLocaleStandardAlternateFormat = "%EX"sv;
128 static const Traversal::Iterable<
String> kDefaultParseFormats;
151 static
TimeOfDay Parse (const
String& rep, const locale& l = locale{});
162 static optional<TimeOfDay> ParseQuietly (
const String& rep,
const String& formatPattern);
163 static optional<TimeOfDay> ParseQuietly (
const String& rep,
const locale& l,
const String& formatPattern);
167 static optional<TimeOfDay> ParseQuietly_ (
const wstring& rep,
const String& formatPattern);
168 static optional<TimeOfDay> ParseQuietly_ (
const wstring& rep,
const time_get<wchar_t>& tmget,
const String& formatPattern);
184 class FormatException;
190 nonvirtual
constexpr uint32_t GetAsSecondsCount ()
const;
195 nonvirtual
void ClearSecondsField ();
201 nonvirtual
constexpr uint8_t GetHours ()
const;
207 nonvirtual
constexpr uint8_t GetMinutes ()
const;
213 nonvirtual
constexpr uint8_t GetSeconds ()
const;
225 eCurrentLocale_WithZerosStripped,
227 eDEFAULT = eCurrentLocale_WithZerosStripped,
233 using NonStandardPrintFormat::eCurrentLocale_WithZerosStripped;
242 nonvirtual
String Format (NonStandardPrintFormat pf = NonStandardPrintFormat::eDEFAULT)
const;
243 nonvirtual
String Format (
const locale& l)
const;
244 nonvirtual
String Format (
const locale& l,
const String& formatPattern)
const;
245 nonvirtual
String Format (
const String& formatPattern)
const;
250 constexpr strong_ordering operator<=> (
const TimeOfDay& rhs)
const =
default;
256 nonvirtual
String ToString ()
const;