On 2024-01-11 11:09, Paul Gilmartin via tz wrote:
That is, it is the responsibility of the programmer to call strftime() with a TZ matching that corresponding to struct tm. I take this to mean that gmtime corresponds to GMT0. There is no need to ad a time_t value.
Yes, after looking at this a bit more I'm becoming more inclined to not add a strftime_z (and strftime_lz). It's easy to generate the equivalent of %s with sprintf on the corresponding time_t value, and none of the other strftime formats should care which timezone was used to generate them. %z and %Z should be calculated from tm_gmtoff and tm_zone (when available) rather than by invoking mktime (which is the best you can do when they're not available). The next POSIX draft says something along these lines, although it botches the details (which admittedly are messy). If I understand things correctly, it's impossible for an implementation to conform to both POSIX-2017 and draft next POSIX in this area. Oh well.