diff --git a/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp b/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp index b851bcd906..4f3c9dfeab 100644 --- a/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp +++ b/Userland/Applications/ClockSettings/ClockSettingsWidget.cpp @@ -20,7 +20,7 @@ ClockSettingsWidget::ClockSettingsWidget() load_from_gml(clock_settings_widget_gml); static auto time_zones = TimeZone::all_time_zones(); - m_time_zone = TimeZone::current_time_zone(); + m_time_zone = TimeZone::system_time_zone(); m_time_zone_combo_box = *find_descendant_of_type_named("time_zone_input"); m_time_zone_combo_box->set_only_allow_values_from_model(true); diff --git a/Userland/Libraries/LibC/time.cpp b/Userland/Libraries/LibC/time.cpp index 4d68119555..0390d2cbd7 100644 --- a/Userland/Libraries/LibC/time.cpp +++ b/Userland/Libraries/LibC/time.cpp @@ -372,7 +372,7 @@ void tzset() if (char* tz = getenv("TZ"); tz != nullptr) time_zone = tz; else - time_zone = TimeZone::current_time_zone(); + time_zone = TimeZone::system_time_zone(); auto set_default_values = []() { timezone = 0; diff --git a/Userland/Libraries/LibTimeZone/TimeZone.cpp b/Userland/Libraries/LibTimeZone/TimeZone.cpp index af9b739b1e..2ab7eb7e2a 100644 --- a/Userland/Libraries/LibTimeZone/TimeZone.cpp +++ b/Userland/Libraries/LibTimeZone/TimeZone.cpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace TimeZone { @@ -68,7 +69,7 @@ private: FILE* m_file { nullptr }; }; -StringView current_time_zone() +StringView system_time_zone() { TimeZoneFile time_zone_file("r"); @@ -79,6 +80,11 @@ StringView current_time_zone() return "UTC"sv; } +StringView current_time_zone() +{ + return canonicalize_time_zone(tzname[0]).value_or("UTC"sv); +} + ErrorOr change_time_zone([[maybe_unused]] StringView time_zone) { #ifdef __serenity__ diff --git a/Userland/Libraries/LibTimeZone/TimeZone.h b/Userland/Libraries/LibTimeZone/TimeZone.h index 710461f86c..cbb7830ac2 100644 --- a/Userland/Libraries/LibTimeZone/TimeZone.h +++ b/Userland/Libraries/LibTimeZone/TimeZone.h @@ -31,6 +31,7 @@ struct NamedOffset : public Offset { String name; }; +StringView system_time_zone(); StringView current_time_zone(); ErrorOr change_time_zone(StringView time_zone); Span all_time_zones(); diff --git a/Userland/Utilities/timezone.cpp b/Userland/Utilities/timezone.cpp index 641d8ef548..2d4cdaf8f7 100644 --- a/Userland/Utilities/timezone.cpp +++ b/Userland/Utilities/timezone.cpp @@ -32,7 +32,7 @@ ErrorOr serenity_main(Main::Arguments arguments) } if (time_zone.is_empty()) { - outln("{}", TimeZone::current_time_zone()); + outln("{}", TimeZone::system_time_zone()); return 0; }