4#ifndef _Stroika_Foundation_Time_Timezone_h_
5#define _Stroika_Foundation_Time_Timezone_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
14#include "Stroika/Foundation/DataExchange/ValidationStrategy.h"
40namespace Stroika::Foundation::Time {
67 optional<Characters::String> fName;
68 optional<Characters::String> fAbbreviation;
69 optional<int> fBiasInMinutesFromUTC;
71 Details fStandardTime;
72 Details fDaylightSavingsTime;
79 optional<Characters::String>
fID;
106 enum class TZ_ : uint16_t {
111 constexpr Timezone (TZ_ tz)
noexcept;
114 using BiasInMinutesFromUTCType = int16_t;
129 constexpr explicit Timezone (BiasInMinutesFromUTCType biasInMinutesFromUTC)
noexcept;
223 nonvirtual
constexpr auto operator<=> (
const Timezone& rhs)
const =
default;
233 BiasInMinutesFromUTCType fBiasInMinutesFromUTC_ : 16;
236 struct _HACK_2_TEST_4_static_assert_ {
240 static_assert (
sizeof (Timezone) <=
sizeof (_HACK_2_TEST_4_static_assert_),
241 "Timezone can/should be packed as much as practical since we could use a single uint16_ probably");
242 static_assert (totally_ordered<Timezone>);
251#include "Timezone.inl"
TimeZoneInformationType GetCurrentLocaleTimezoneInfo()
return a summary of information about the currently configured default timezone on this system.
String is like std::u32string, except it is much easier to use, often much more space efficient,...
nonvirtual BiasInMinutesFromUTCType GetBiasInMinutesFromUTC(const Date &date, const TimeOfDay &tod) const
static constexpr Traversal::Range< BiasInMinutesFromUTCType > kBiasInMinutesFromUTCTypeValidRange
static const optional< Timezone > kUnknown
static const Timezone kUTC
nonvirtual make_signed_t< time_t > GetBiasFromUTC(const Date &date, const TimeOfDay &tod) const
nonvirtual optional< bool > IsDaylightSavingsTime(const Date &date, const optional< TimeOfDay > &tod)
nonvirtual String AsRFC1123(const Date &date, const TimeOfDay &tod) const
nonvirtual String AsHHMM(const Date &date, const TimeOfDay &tod, bool insertColon) const
nonvirtual Characters::String ToString() const
static const Timezone kLocalTime
static optional< Timezone > ParseTimezoneOffsetString(const char *tzStr)