This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

strftime trouble with %z


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]