strftime trouble with %z
Peter Rosin
peda@lysator.liu.se
Thu Apr 14 14:20:00 GMT 2011
Hi!
I'm getting somewhat troublesome output from the below STC.
It seems as if gmtime mucks with something, or that
localtime is not filling in everything it needs to?
------------------8<---(zone.c)---------
#include <stdio.h>
#include <time.h>
int main(void)
{
char zone[6];
struct tm *tm;
time_t now = time(NULL);
tm = localtime(&now);
strftime(zone, sizeof(zone), "%z", tm);
printf("%s %d %d\n", zone, timezone, tm->tm_isdst);
tm = localtime(&now);
strftime(zone, sizeof(zone), "%z", tm);
printf("%s %d %d\n", zone, timezone, tm->tm_isdst);
tm = gmtime(&now);
tm = localtime(&now);
strftime(zone, sizeof(zone), "%z", tm);
printf("%s %d %d\n", zone, timezone, tm->tm_isdst);
return 0;
}
------------------8<--------------------
I expect three equal lines, e.g.
+0200 -3600 1
+0200 -3600 1
+0200 -3600 1
but I get this on Cygwin:
+0200 -3600 1
+0200 -3600 1
+0000 -3600 1
$ cygcheck -c gcc4 cygwin
Cygwin Package Information
Package Version Status
cygwin 1.7.9-1 OK
gcc4 4.3.4-4 OK
FWIW, I have tested the STC on Linux and Solaris 10 and they
behave as I expected...
Cheers,
Peter
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list