libc: Add "Z" as TZ designator for strptime.

ISO 8601 allows use of "Z" as the time zone designator. Update the
strptime parser to allow this usage.

While we are at it, update the manpage to reflect that both UTC and Z
are now valid options.

Reviewed by:	des
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D53083
This commit is contained in:
Gordon Tetlow 2025-10-15 18:24:06 -04:00
parent 4548b9f3a8
commit 79e57ea662
No known key found for this signature in database
GPG key ID: E5F7BCCBA3BDDDF8
2 changed files with 3 additions and 2 deletions

View file

@ -171,7 +171,7 @@ is taken as noon.
The
.Fa %Z
format specifier only accepts time zone abbreviations of the local time zone,
or the value "GMT".
and the values "GMT", "UTC", or "Z".
This limitation is because of ambiguity due to of the over loading of time
zone abbreviations.
One such example is

View file

@ -546,7 +546,8 @@ label:
zonestr[cp - buf] = '\0';
tzset();
if (0 == strcmp(zonestr, "GMT") ||
0 == strcmp(zonestr, "UTC")) {
0 == strcmp(zonestr, "UTC") ||
0 == strcmp(zonestr, "Z")) {
*GMTp = 1;
} else if (0 == strcmp(zonestr, tzname[0])) {
tm->tm_isdst = 0;