From 146d14177015b62d101520425ae6927fb4237fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 9 Dec 2024 22:32:32 +0100 Subject: [PATCH] Fixes timezone bias on Windows `GetTimeZoneInformation`returns the bias in minutes already, so no need to adjust it. Also handle the return code since it determines if the time zone is in the daylight saving range. Ref: https://learn.microsoft.com/en-us/windows/win32/api/timezoneapi/nf-timezoneapi-gettimezoneinformation Fixes: https://github.com/saghul/txiki.js/issues/325 --- quickjs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/quickjs.c b/quickjs.c index 4d56edee7..29beb4b2d 100644 --- a/quickjs.c +++ b/quickjs.c @@ -43386,9 +43386,14 @@ static const JSCFunctionListEntry js_math_obj[] = { between UTC time and local time 'd' in minutes */ static int getTimezoneOffset(int64_t time) { #if defined(_WIN32) - TIME_ZONE_INFORMATION time_zone_info; - GetTimeZoneInformation(&time_zone_info); - return (int)time_zone_info.Bias / 60; + DWORD r; + TIME_ZONE_INFORMATION t; + r = GetTimeZoneInformation(&t); + if (r == TIME_ZONE_ID_INVALID) + return 0; + if (r == TIME_ZONE_ID_DAYLIGHT) + return (int)(t.Bias + t.DaylightBias); + return (int)t.Bias; #else time_t ti; struct tm tm;