https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114645
--- Comment #13 from Hristo Venev <hristo at venev dot name> --- > $TZ allows you to override it per-process (and even change it during the > lifetime of a process by using setenv and tzset). We don't support that for > current_zone(). /etc/localtime can also change. > The intent is to infer an IANA time zone from the /etc/localtime symlink, if > possible. If the intent was to match libc, it would look at $TZ. I've > discussed this exact question with the author of that library (which is the > origin of the std::chrono components too). What I said in comment 8 above is > paraphrasing what he said. Point taken. Still, do you have any explanation for why this behavior was chosen? > Just do the easy thing yourself. The easy thing being to fix all applications that currently use or will ever use current_zone(). Fun times ahead...