mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-03 23:00:58 +00:00 
			
		
		
		
	For example, time zone transitions can result in repeated or skipped wall times. Temporal wants us to handle these transitions.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			882 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			882 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);
 | 
						|
Vector<TimeZoneOffset> disambiguated_time_zone_offsets(StringView time_zone, UnixDateTime time);
 | 
						|
 | 
						|
}
 |