bug-gawk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

use of TZ by mktime()/strftime()


From: Ed Morton
Subject: use of TZ by mktime()/strftime()
Date: Tue, 9 Aug 2022 11:18:22 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.1.0

I doubt if this is a bug, but if not I'd like to understand it better. When I want to print the UTC time from a time saved in some other timezone I can do:

   $ TZ=UTC

then run `date` as:

   $ date +'%F %T' -d '2022-01-01T12:00:00 EST'
   2022-01-01 17:00:00

   $ date +'%F %T' -d '2022-01-01T12:00:00 IST'
   2022-01-01 06:30:00

When I try the equivalent with `gawk`, though, the results vary depending on which TZ value is used:

   $ awk 'BEGIN{ENVIRON["TZ"]="EST"; s=mktime("2022 01 01 12 00 00");
   ENVIRON["TZ"]="UTC"; print strftime("%F %T",s)}'
   2022-01-01 17:00:00

   $ awk 'BEGIN{ENVIRON["TZ"]="IST"; s=mktime("2022 01 01 12 00 00");
   ENVIRON["TZ"]="UTC"; print strftime("%F %T",s)}'
   2022-01-01 12:00:00

Note that the date command worked for EST and IST but the awk one only worked for EST. I'm using gawk 5.1.1 on both cygwin and MacOS and I see that effect with a few other TZ values I've tried.

What is causing awk to act on some TZ values but not others that date can act on? Is there any way for me to test if a given TZ will work in awk?

    Ed.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]