aboutsummaryrefslogtreecommitdiff
path: root/time
diff options
context:
space:
mode:
authorTAMUKI Shoichi <tamuki@linet.gr.jp>2019-01-24 23:00:53 +0900
committerTAMUKI Shoichi <tamuki@linet.gr.jp>2019-01-24 23:00:53 +0900
commitb22eed371086b297adf9c1509850649de883d77b (patch)
tree4a834b782567b86e19bafb4ff0b9e1b7749bc0a1 /time
parenthurd: Fix libsupport xsigstack build (diff)
downloadglibc-b22eed371086b297adf9c1509850649de883d77b.tar.gz
glibc-b22eed371086b297adf9c1509850649de883d77b.tar.bz2
glibc-b22eed371086b297adf9c1509850649de883d77b.zip
strftime: Set the default width of "%Ey" to 2 [BZ #23758]
In Japanese locales, strftime's alternative year format (%Ey) produces a year numbered within a time period called an _era_. A new era typically begins when a new emperor is enthroned. The result of "%Ey" is therefore usually a one- or two-digit number. Many programs that display Japanese era dates assume that the era year is two digits wide. To improve how these programs display dates during the first nine years of a new era, change "%Ey" to pad one- digit numbers on the left with a zero. This change applies to all locales. It is expected to be harmless for other locales that use the alternative year format (e.g. lo_LA and th_TH, in which "%Ey" produces the year of the Buddhist calendar) as those calendars' year numbers are already more than two digits wide, and this is not expected to change. This change needs to be in place before 2019-05-01 CE, as a new era is scheduled to begin on that date. Reviewed-by: Zack Weinberg <zackw@panix.com> Reviewed-by: Rafal Luzynski <digitalfreak@lingonborough.com> ChangeLog: [BZ #23758] * manual/time.texi (strftime): Document "%Ey". * time/strftime_l.c (__strftime_internal): Set the default width padding with zero of "%Ey" to 2.
Diffstat (limited to 'time')
-rw-r--r--time/strftime_l.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/time/strftime_l.c b/time/strftime_l.c
index 7ba4179de3..cbe08e7afb 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -1294,7 +1294,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
if (era)
{
int delta = tp->tm_year - era->start_date[0];
- DO_NUMBER (1, (era->offset
+ DO_NUMBER (2, (era->offset
+ delta * era->absolute_direction));
}
#else