aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32/ngx_time.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/win32/ngx_time.c')
-rw-r--r--src/os/win32/ngx_time.c18
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;
+ }
}