Can GPC not sometimes have 16 bit Integer? Because if so, that field would be too small.
No, `Integer' is at least 32 bits.
Ok, fair enough.
Hmm, the TimeZone on my system comes back as:
TimeZone (in seconds): -1878692308
Just to be sure, a test program like this does so?
program Foo;
var t: TimeStamp;
begin GetTimeStamp (t); WriteLn (t.TimeValid, ' ', t.TimeZone) end.
True -1878692308
What does the following C program give?
#include <stdio.h> #include <sys/time.h>
#if 0 /* Set if variable not defined */ extern long int timezone; #endif
int main () { time_t s = (time_t) time (0); localtime (&s); printf ("%li\n", (long int) timezone); return 0; }
It returns the same number.
Do you find any mentioning of `timezone' in the system headers?
man timezone gives:
TIMEZONE(3) System Library Functions Manual TIMEZONE(3)
NAME timezone - return the timezone abbreviation
LIBRARY Standard C Library (libc, -lc)
SYNOPSIS char * timezone(int zone, int dst);
DESCRIPTION This interface is for compatibility only; it is impossible to reliably map timezone's arguments to a time zone abbreviation. See ctime(3).
The timezone() function returns a pointer to a time zone abbreviation for the specified zone and dst values. Zone is the number of minutes west of GMT and dst is non-zero if daylight savings time is in effect.
SEE ALSO ctime(3)
HISTORY A timezone() function appeared in Version 7 AT&T UNIX.
BSD April 19, 1994 BSD
Seems like you need to call localtime and use the tm_gmtoff field.
I imagine this would be the same as under FreeBSD as Mac OS X's unix is based on FreeBSD.
Enjoy, Peter.