50 |
|
* Return local date/time in Mac format (seconds since 1.1.1904) |
51 |
|
*/ |
52 |
|
|
53 |
< |
const uint32 TIME_OFFSET = 0x7c25cca0; // Offset Mac->Unix time in seconds |
53 |
> |
const uint32 TIME_OFFSET = 0x7c25b080; // Offset Mac->Unix time in seconds |
54 |
|
|
55 |
|
uint32 TimerDateTime(void) |
56 |
|
{ |
57 |
< |
time_t uct_now = time(NULL); |
58 |
< |
struct tm tm; |
59 |
< |
localtime_r(&uct_now, &tm); |
60 |
< |
time_t local_now = mktime(&tm); |
57 |
> |
time_t utc_now = time(NULL); |
58 |
> |
#if defined(__linux__) || defined(__SVR4) |
59 |
> |
long tz = timezone; |
60 |
> |
time_t local_now = uct_now - tz; |
61 |
> |
if (daylight) |
62 |
> |
local_now += 3600; |
63 |
> |
#elif defined(__FreeBSD__) || defined(__NetBSD__) |
64 |
> |
time_t local_now = utc_now + localtime(&utc_now)->tm_gmtoff; |
65 |
> |
#else |
66 |
> |
time_t local_now = utc_now; |
67 |
> |
#endif |
68 |
|
return (uint32)local_now + TIME_OFFSET; |
69 |
|
} |
70 |
|
|