On Fri, 26 Apr 2002, David Wheeler wrote: > It might make sense to write a comprehensive stftime test app in C to see > how it differs from what my Perl script found. I would do it, but I'm JAPH. > ;-) > > On 4/26/02 12:10 PM, "Edward Moy" <[EMAIL PROTECTED]> claimed: > > > > I stumbled on the %Z problem myself, and for my needs, have worked around > > it by using Date::Format. But I seem to think that the problem is not the > > system level strftime, since I vaguely remember writing a test C program, > > and %Z worked there. My sense is that the POSIX interface to strftime is > > somehow not working fully.
Here's a test program you can copy into a file named test.c and compile it with "cc -o test test.c". I've included my Solaris output below the program, so you can compare. #include <sys/types.h> #include <stdio.h> #include <time.h> void main() { int strsize = 255; time_t timeAsNumber; struct tm *temp; char str[256]; timeAsNumber = time(NULL); temp = localtime( &timeAsNumber); strftime (str, strsize, "a: %a", temp); printf ("%s\n", str); strftime (str, strsize, "A: %A", temp); printf ("%s\n", str); strftime (str, strsize, "b: %b", temp); printf ("%s\n", str); strftime (str, strsize, "B: %B", temp); printf ("%s\n", str); strftime (str, strsize, "c: %c", temp); printf ("%s\n", str); strftime (str, strsize, "C: %C", temp); printf ("%s\n", str); strftime (str, strsize, "d: %d", temp); printf ("%s\n", str); strftime (str, strsize, "D: %D", temp); printf ("%s\n", str); strftime (str, strsize, "e: %e", temp); printf ("%s\n", str); strftime (str, strsize, "G: %G", temp); printf ("%s\n", str); strftime (str, strsize, "h: %h", temp); printf ("%s\n", str); strftime (str, strsize, "H: %H", temp); printf ("%s\n", str); strftime (str, strsize, "I: %I", temp); printf ("%s\n", str); strftime (str, strsize, "j: %j", temp); printf ("%s\n", str); strftime (str, strsize, "k: %k", temp); printf ("%s\n", str); strftime (str, strsize, "l: %l", temp); printf ("%s\n", str); strftime (str, strsize, "m: %m", temp); printf ("%s\n", str); strftime (str, strsize, "M: %M", temp); printf ("%s\n", str); strftime (str, strsize, "n: %n", temp); printf ("%s\n", str); strftime (str, strsize, "p: %p", temp); printf ("%s\n", str); strftime (str, strsize, "r: %r", temp); printf ("%s\n", str); strftime (str, strsize, "R: %R", temp); printf ("%s\n", str); strftime (str, strsize, "S: %S", temp); printf ("%s\n", str); strftime (str, strsize, "t: %t(tab) T: %T", temp); printf ("%s\n", str); strftime (str, strsize, "u: %u", temp); printf ("%s\n", str); strftime (str, strsize, "U: %U", temp); printf ("%s\n", str); strftime (str, strsize, "V: %V", temp); printf ("%s\n", str); strftime (str, strsize, "w: %w", temp); printf ("%s\n", str); strftime (str, strsize, "W: %W", temp); printf ("%s\n", str); strftime (str, strsize, "x: %x", temp); printf ("%s\n", str); strftime (str, strsize, "X: %X", temp); printf ("%s\n", str); strftime (str, strsize, "y: %y", temp); printf ("%s\n", str); strftime (str, strsize, "Y: %Y", temp); printf ("%s\n", str); strftime (str, strsize, "Z: %Z", temp); printf ("%s\n", str); printf ("now I've said my a-b-c's...\n"); } --------- End program ------------------------- --------- Begin output ------------------------ a: Fri A: Friday b: Apr B: April c: Fri Apr 26 16:34:31 2002 C: Fri Apr 26 16:34:31 CDT 2002 d: 26 D: 04/26/02 e: 26 G: 2002 h: Apr H: 16 I: 04 j: 116 k: 16 l: 4 m: 04 M: 34 n: p: PM r: 04:34:31 PM R: 16:34 S: 31 t: (tab) T: 16:34:31 u: 5 U: 16 V: 17 w: 5 W: 16 x: 04/26/02 X: 16:34:31 y: 02 Y: 2002 Z: CDT now I've said my a-b-c's... --------- End output ------------------ -- MattLangford