diff options
Diffstat (limited to 'src/os/win32/ngx_time.c')
-rw-r--r-- | src/os/win32/ngx_time.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c index 39ce63336..798c14383 100644 --- a/src/os/win32/ngx_time.c +++ b/src/os/win32/ngx_time.c @@ -60,11 +60,23 @@ ngx_libc_gmtime(time_t s, struct tm *tm) ngx_int_t ngx_gettimezone(void) { + u_long n; TIME_ZONE_INFORMATION tz; - if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) { + n = GetTimeZoneInformation(&tz); + + switch (n) { + + case TIME_ZONE_ID_UNKNOWN: return -tz.Bias; - } - return 0; + case TIME_ZONE_ID_STANDARD: + return -(tz.Bias + tz.StandardBias); + + case TIME_ZONE_ID_DAYLIGHT: + return -(tz.Bias + tz.DaylightBias); + + default: /* TIME_ZONE_ID_INVALID */ + return 0; + } } |