mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-20 19:45:12 +00:00
LibTimeZone: Add an API to retrieve a list of all known IANA time zones
This commit is contained in:
parent
0a4430fc41
commit
da27937144
Notes:
sideshowbarker
2024-07-17 20:23:57 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/da27937144f Pull-request: https://github.com/SerenityOS/serenity/pull/12026 Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/linusg
3 changed files with 27 additions and 0 deletions
|
@ -524,6 +524,22 @@ Optional<Offset> get_time_zone_offset(TimeZone time_zone, AK::Time time)
|
|||
return dst_offset;
|
||||
}
|
||||
|
||||
Span<StringView const> all_time_zones()
|
||||
{
|
||||
static constexpr auto all_time_zones = Array {
|
||||
)~~~");
|
||||
|
||||
for (auto const& time_zone : time_zone_data.time_zone_names) {
|
||||
generator.set("time_zone", time_zone);
|
||||
generator.append("\"@time_zone@\"sv, ");
|
||||
}
|
||||
|
||||
generator.append(R"~~~(
|
||||
};
|
||||
|
||||
return all_time_zones;
|
||||
}
|
||||
|
||||
}
|
||||
)~~~");
|
||||
|
||||
|
|
|
@ -31,6 +31,16 @@ StringView current_time_zone()
|
|||
return canonicalize_time_zone(tzname[0]).value_or("UTC"sv);
|
||||
}
|
||||
|
||||
Span<StringView const> __attribute__((weak)) all_time_zones()
|
||||
{
|
||||
#if !ENABLE_TIME_ZONE_DATA
|
||||
static constexpr auto utc = Array { "UTC"sv };
|
||||
return utc;
|
||||
#else
|
||||
return {};
|
||||
#endif
|
||||
}
|
||||
|
||||
Optional<TimeZone> __attribute__((weak)) time_zone_from_string([[maybe_unused]] StringView time_zone)
|
||||
{
|
||||
#if !ENABLE_TIME_ZONE_DATA
|
||||
|
|
|
@ -25,6 +25,7 @@ struct Offset {
|
|||
};
|
||||
|
||||
StringView current_time_zone();
|
||||
Span<StringView const> all_time_zones();
|
||||
|
||||
Optional<TimeZone> time_zone_from_string(StringView time_zone);
|
||||
StringView time_zone_to_string(TimeZone time_zone);
|
||||
|
|
Loading…
Add table
Reference in a new issue