On Fri, 14 Jun 2024 at 10:52, Robert Elz <k...@munnari.oz.au> wrote:

>   | I also note a minor bug/issue with printf in Bash 5.3-alpha: the
> builtin
>   | printf treats TZ=CET-1CEST,M3.5,M10.5/3 as if it were oddly-named UTC.
>
> That's user error, POSIX format requires 3 values after the M:


"User error" is not the only possible interpretation, even if "POSIX says
something else". (And I specifically said "issue" rather than "bug".) It's
an entirely reasonable *extension* to POSIX.

I only knew that the 2-value version was possible because it was
documented *and
recommended* when I started using it in 1988, with substantially the same
description in Ultrix, SunOS, Xenix, and SCO-Unix. In 1988 I used
TZ=NZST-12NZDT,M10.5,M3.1 but the next year (1989) changed to
TZ=NZST-12NZDT,M10.1,M3.3 and that remained unchanged until 2007, when it
changed to TZ=NZST-12NZDT,M9.5,M4.1. Obviously I've only *kept* using this
shorter format because *nothing* objected; in particular the GNU "date" and
"ls" and "touch" commands interpret these abbreviated timezone rules
according to this "extension" format. (Some time around 2014 I switched to
using the "named" timezones with simply TZ=NZ or TZ=Pacific/Auckland, but
I've occasionally used the old style when I needed to test behaviour in
"odd" time zones.)

To be clear, this isn't a bug report, but rather a feature request to
implement a common extension, and to interpret TZ=...,M*m.w* printf in line
with the rest of GNU.

-Martin

Reply via email to