# HG changeset patch # User cmlenz # Date 1216139658 0 # Node ID c37bc86b4e3a3bc7aff41f8712bde3d6bc8ee4b1 # Parent ff9a6a37eb72cd9dfe0c4cc6848a36e40793ffe0 Fixed quarters in date formatting. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,15 @@ 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 --- a/babel/dates.py +++ b/babel/dates.py @@ -841,6 +841,14 @@ 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 --- a/babel/tests/dates.py +++ b/babel/tests/dates.py @@ -22,6 +22,15 @@ 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')