From 0dfb9714fe5a06bd7b532bdd35aa2d2852ea97d5 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 13 Mar 2022 08:52:07 -0400 Subject: [PATCH] LibCore: Use altzone for the current time zone offset during DST Also use the daylight global to determine the current time zone name, i.e. tzname[0] is standard time, tzname[1] is daylight savings time. Note that altzone isn't required to be defined on all systems, so we have to #ifdef to check if it exists in order for Lagom to build. --- Userland/Libraries/LibCore/DateTime.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibCore/DateTime.cpp b/Userland/Libraries/LibCore/DateTime.cpp index 525328d541..673eac810f 100644 --- a/Userland/Libraries/LibCore/DateTime.cpp +++ b/Userland/Libraries/LibCore/DateTime.cpp @@ -106,7 +106,9 @@ String DateTime::to_string(StringView format) const const int format_len = format.length(); auto format_time_zone_offset = [&](bool with_separator) { -#ifndef __FreeBSD__ +#if defined(__serenity__) + auto offset_seconds = daylight ? -altzone : -timezone; +#elif !defined(__FreeBSD__) auto offset_seconds = -timezone; #else auto offset_seconds = 0; @@ -251,7 +253,7 @@ String DateTime::to_string(StringView format) const format_time_zone_offset(true); break; case 'Z': - builder.append(tzname[0]); + builder.append(tzname[daylight]); break; case '%': builder.append('%');