mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-08 13:37:10 +09:00

On Windows, ICU does not look at the TZ environment variable at all. So to support changing time zones in test-js, let's set ICU's default time zone directly. Note that we no longer deal with "null" time zone strings. We just cache whatever ICU thinks is the current time zone before attempting to change it, for which we never have a null result. Co-authored-by: Andrew Kaster <andrew@ladybird.org>
35 lines
785 B
C++
35 lines
785 B
C++
/*
|
|
* Copyright (c) 2024-2025, Tim Flynn <trflynn89@ladybird.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Error.h>
|
|
#include <AK/Optional.h>
|
|
#include <AK/String.h>
|
|
#include <AK/Time.h>
|
|
#include <AK/Vector.h>
|
|
|
|
namespace Unicode {
|
|
|
|
struct TimeZoneOffset {
|
|
enum class InDST {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
AK::Duration offset;
|
|
InDST in_dst { InDST::No };
|
|
};
|
|
|
|
String current_time_zone();
|
|
ErrorOr<void> set_current_time_zone(StringView);
|
|
void clear_system_time_zone_cache();
|
|
Vector<String> const& available_time_zones();
|
|
Vector<String> available_time_zones_in_region(StringView region);
|
|
Optional<String> resolve_primary_time_zone(StringView time_zone);
|
|
Optional<TimeZoneOffset> time_zone_offset(StringView time_zone, UnixDateTime time);
|
|
|
|
}
|