Every year, random day in Oct, ctime resolves two different epoch times into the same string date. tz not set, not affected, not makes an influence. For example: 1351385541 2012-10-28 1:52:21 Sun Oct 28 01:52:21 2012 1351389141 2012-10-28 1:52:21 Sun Oct 28 01:52:21 2012 A code to get output as above: #include<time.h> #include<stdio.h> int main() { time_t t; struct tm *tm; t=1351385541; tm=gmtime(&t); printf( "%lu %d-%d-%d %d:%d:%d %s", t, tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, ctime(&t) ); t=1351389141; tm=gmtime(&t); printf( "%lu %d-%d-%d %d:%d:%d %s", t, tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, ctime(&t) ); }
The dates are in different time zones, crossing a DST changeover. See tm_isdst.
Hi Andreas, Right, but with tm.tm_isdst=0 it works for all "modern" dates and fails somewhen before the 19xx. Changeover did not exist then? 57718800 Sun Oct 31 02:00:00 1971 57722400 Sun Oct 31 02:00:00 1971 With tm_isdst=-1 it does not work for any year. In case with http server application is makes tricky to cover past dates... ok, nobody needs it, hopefully. Thanka s lot! 2012/9/22 schwab@linux-m68k.org <sourceware-bugzilla@sourceware.org> > > http://sourceware.org/bugzilla/show_bug.cgi?id=14606 > > Andreas Schwab <schwab@linux-m68k.org> changed: > > What |Removed |Added > > ---------------------------------------------------------------------------- > Status|NEW |RESOLVED > Resolution| |INVALID > > --- Comment #1 from Andreas Schwab <schwab@linux-m68k.org> 2012-09-22 > 09:26:58 UTC --- > The dates are in different time zones, crossing a DST changeover. See > tm_isdst. > > -- > Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You reported the bug. >