/* * Copyright (c) 2022, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace TimeZone { enum class InDST { No, Yes, }; struct Offset { i64 seconds { 0 }; InDST in_dst { InDST::No }; }; StringView current_time_zone(); Optional time_zone_from_string(StringView time_zone); StringView time_zone_to_string(TimeZone time_zone); Optional canonicalize_time_zone(StringView time_zone); Optional daylight_savings_rule_from_string(StringView daylight_savings_rule); StringView daylight_savings_rule_to_string(DaylightSavingsRule daylight_savings_rule); Optional get_time_zone_offset(TimeZone time_zone, AK::Time time); Optional get_time_zone_offset(StringView time_zone, AK::Time time); }