Mercurial > hg > nginx
view src/os/win32/ngx_time.c @ 561:e48ebafc6939 release-0.3.2
nginx-0.3.2-RELEASE import
*) Feature: the Sun Studio 10 C compiler support.
*) Feature: the "proxy_upstream_max_fails",
"proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and
"fastcgi_upstream_fail_timeout" directives.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 12 Oct 2005 13:50:36 +0000 |
parents | 9b8c906f6e63 |
children | 9c2f3ed7a247 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #include <ngx_config.h> #include <ngx_core.h> void ngx_gettimeofday(struct timeval *tp) { uint64_t intervals; FILETIME ft; GetSystemTimeAsFileTime(&ft); /* * A file time is a 64-bit value that represents the number * of 100-nanosecond intervals that have elapsed since * January 1, 1601 12:00 A.M. UTC. * * Between January 1, 1970 (Epoch) and January 1, 1601 there were * 134744 days, * 11644473600 seconds or * 11644473600,000,000,0 100-nanosecond intervals. * * See also MSKB Q167296. */ intervals = ((uint64_t) ft.dwHighDateTime << 32) | ft.dwLowDateTime; intervals -= 116444736000000000; tp->tv_sec = (long) (intervals / 10000000); tp->tv_usec = (long) ((intervals % 10000000) / 10); } void ngx_libc_localtime(struct tm *tm) { time_t now; struct tm *t; now = ngx_time(); t = localtime(&now); *tm = *t; } void ngx_libc_gmtime(struct tm *tm) { time_t now; struct tm *t; now = ngx_time(); t = gmtime(&now); *tm = *t; } ngx_int_t ngx_gettimezone(void) { TIME_ZONE_INFORMATION tz; if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) { return -tz.Bias; } return 0; }