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.