From: Christopher Lenz Date: Tue, 15 Jul 2008 16:34:18 +0000 (+0000) Subject: Fixed quarters in date formatting. X-Git-Tag: 1.0~289 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e9283a33bd292685f749bf42aee07149f79f774;p=thirdparty%2Fbabel.git Fixed quarters in date formatting. --- diff --git a/ChangeLog b/ChangeLog index d0e9c6ed..5fdfdb66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,15 @@ http://svn.edgewall.org/repos/babel/tags/1.0.0/ relative times with strings such as "2 days" or "1 month" (ticket #126). +Version 0.9.4 +http://svn.edgewall.org/repos/babel/tags/0.9.4/ +(???, from branches/stable/0.9.x) + + * Currency symbol definitions that is defined with choice patterns in the + CLDR data are no longer imported, so the symbol code will be used instead. + * Fixed quarter support in date formatting. + + Version 0.9.3 http://svn.edgewall.org/repos/babel/tags/0.9.3/ (Jul 9 2008, from branches/stable/0.9.x) diff --git a/babel/dates.py b/babel/dates.py index dc602099..04069a49 100644 --- a/babel/dates.py +++ b/babel/dates.py @@ -841,6 +841,14 @@ class DateTimeFormat(object): year = year[-2:] return year + def format_quarter(self, char, num): + quarter = (self.value.month - 1) // 3 + 1 + if num <= 2: + return ('%%0%dd' % num) % quarter + width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num] + context = {'Q': 'format', 'q': 'stand-alone'}[char] + return get_quarter_names(width, context, self.locale)[quarter] + def format_month(self, char, num): if num <= 2: return ('%%0%dd' % num) % self.value.month diff --git a/babel/tests/dates.py b/babel/tests/dates.py index 5f6abf1e..b3fc14b1 100644 --- a/babel/tests/dates.py +++ b/babel/tests/dates.py @@ -22,6 +22,15 @@ from babel import dates class DateTimeFormatTestCase(unittest.TestCase): + def test_quarter_format(self): + d = date(2006, 6, 8) + fmt = dates.DateTimeFormat(d, locale='en_US') + self.assertEqual('2', fmt['Q']) + self.assertEqual('2nd quarter', fmt['QQQQ']) + d = date(2006, 12, 31) + fmt = dates.DateTimeFormat(d, locale='en_US') + self.assertEqual('Q4', fmt['QQQ']) + def test_month_context(self): d = date(2006, 1, 8) fmt = dates.DateTimeFormat(d, locale='cs_CZ')