There were so far only 42 different conversion specifications in
strftime(3), add another one. :) %z yields the local timezone's offset in hours and minutes, as used in RFC822 headers. There's a precedence for this in Lunux' libc, and Internet software (like Perl scripts) start using it. OKed by (wrt. the code freeze): jkh
This commit is contained in:
parent
ee51b2c45f
commit
208b582201
@ -202,6 +202,11 @@ is replaced by the year with century as a decimal number.
|
||||
is replaced by the year without century as a decimal number (00-99).
|
||||
.It Cm \&%Z
|
||||
is replaced by the time zone name.
|
||||
.It Cm \&%z
|
||||
is replaced by the time zone offset from UTC; a leading plus sign stands for
|
||||
east of UTC, a minus sign for west of UTC, hours and minutes follow
|
||||
with two digits each and no delimiter between them (common form for
|
||||
RFC 822 date headers).
|
||||
.It Cm %+
|
||||
is replaced by national representation of the date and time
|
||||
(the format is similar to that produced by
|
||||
@ -241,6 +246,7 @@ with a lot of extensions including
|
||||
.Ql %t ,
|
||||
.Ql %u ,
|
||||
.Ql \&%V ,
|
||||
.Ql %z ,
|
||||
.Ql %+ .
|
||||
|
||||
The peculiar week number and year in the replacements of
|
||||
|
@ -397,6 +397,22 @@ label:
|
||||
pt, ptlim);
|
||||
} else pt = _add("?", pt, ptlim);
|
||||
continue;
|
||||
case 'z':
|
||||
{
|
||||
long absoff;
|
||||
if (t->tm_gmtoff >= 0) {
|
||||
absoff = t->tm_gmtoff;
|
||||
pt = _add("+", pt, ptlim);
|
||||
} else {
|
||||
absoff = -t->tm_gmtoff;
|
||||
pt = _add("-", pt, ptlim);
|
||||
}
|
||||
pt = _conv(absoff / 3600, "%02d",
|
||||
pt, ptlim);
|
||||
pt = _conv((absoff % 3600) / 60, "%02d",
|
||||
pt, ptlim);
|
||||
};
|
||||
continue;
|
||||
case '+':
|
||||
pt = _fmt(Locale->date_fmt, t, pt, ptlim);
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user