X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/92bdf9f72f6f9aae3de0115b7ac8c6037ef95ca1..f94a81c084696210418b8709e8ab649a18465fa6:/src/msw/wince/time.cpp diff --git a/src/msw/wince/time.cpp b/src/msw/wince/time.cpp index aaab3ce887..269333355d 100644 --- a/src/msw/wince/time.cpp +++ b/src/msw/wince/time.cpp @@ -17,10 +17,6 @@ // headers // --------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "window.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -52,8 +48,11 @@ long timezone ; // global variable //////////////////////////////////////////////////////////////////////// // Common code for localtime and gmtime (static) //////////////////////////////////////////////////////////////////////// -static struct tm * __cdecl common_localtime(const time_t * WXUNUSED(t), BOOL bLocal) + +static struct tm * __cdecl common_localtime(const time_t *t, BOOL bLocal) { + wxLongLong i64; + FILETIME ft; wxString str ; SYSTEMTIME SystemTime; TIME_ZONE_INFORMATION pTz; @@ -68,7 +67,19 @@ static struct tm * __cdecl common_localtime(const time_t * WXUNUSED(t), BOOL bLo { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; - ::GetLocalTime(&SystemTime) ; + if (!*t) + ::GetLocalTime(&SystemTime); + else + { + i64 = *t; + i64 = i64 * 10000000 + 116444736000000000; + + ft.dwLowDateTime = i64.GetLo(); + ft.dwHighDateTime = i64.GetHi(); + + ::FileTimeToSystemTime(&ft, &SystemTime); + } + ::GetTimeZoneInformation(&pTz); ///////////////////////////////////////////////