--- a/libidav/utils.c Sun Sep 17 13:18:39 2023 +0200 +++ b/libidav/utils.c Sun Sep 17 13:40:48 2023 +0200 @@ -138,6 +138,7 @@ tparts.tm_sec = val % 100; tparts.tm_min = (val % 10000) / 100; tparts.tm_hour = val / 10000; + tparts.tm_isdst = -1; // parse time zone (if any) @@ -149,7 +150,7 @@ #if defined(__FreeBSD__) return timegm(&tparts); #elif defined(_WIN32) - return mktime(&tparts); + return _mkgmtime(&tparts); #else return mktime(&tparts) - timezone; #endif @@ -166,7 +167,7 @@ #if defined(__FreeBSD__) return timegm(&tparts) + (time_t) (60 * val * sign); #elif defined(_WIN32) - return mktime(&tparts) + (time_t)(60 * val * sign); + return _mkgmtime(&tparts) + (time_t)(60 * val * sign); #else return mktime(&tparts) - timezone + (time_t) (60 * val * sign); #endif