diff options
author | Joerg Wunsch <joerg@FreeBSD.org> | 2000-01-28 17:40:42 +0000 |
---|---|---|
committer | Joerg Wunsch <joerg@FreeBSD.org> | 2000-01-28 17:40:42 +0000 |
commit | 208b5822011b66b1bb7c645c9c9b989c34bcdf30 (patch) | |
tree | 71db919cf3092722ff398889aac77019702b7188 | |
parent | ee51b2c45fa352dca02b88b9e1f485e9dadc6b55 (diff) |
Notes
-rw-r--r-- | lib/libc/stdtime/strftime.3 | 6 | ||||
-rw-r--r-- | lib/libc/stdtime/strftime.c | 16 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/libc/stdtime/strftime.3 b/lib/libc/stdtime/strftime.3 index c4d2d8c07e23..9b2184348c8f 100644 --- a/lib/libc/stdtime/strftime.3 +++ b/lib/libc/stdtime/strftime.3 @@ -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 diff --git a/lib/libc/stdtime/strftime.c b/lib/libc/stdtime/strftime.c index 9aa891f6e168..6404d9c4f26f 100644 --- a/lib/libc/stdtime/strftime.c +++ b/lib/libc/stdtime/strftime.c @@ -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; |