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 

Reply via email to