annotate doc/formatting.txt @ 100:3eaa652b1216

Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
author cmlenz
date Wed, 13 Jun 2007 07:48:06 +0000
parents cf94e70a77f3
children
rev   line source
4
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
1 .. -*- mode: rst; encoding: utf-8 -*-
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
2
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
3 ==========================
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
4 Number and Date Formatting
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
5 ==========================
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
6
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
7
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
8 .. contents:: Contents
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
9 :depth: 2
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
10 .. sectnum::
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
11
2cada72b40ae Forgot to check in the doc directory.
cmlenz
parents:
diff changeset
12
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
13 Date Formatting
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
14 ===============
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
15
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
16 When working with date and time information in Python, you commonly use the
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 42
diff changeset
17 classes ``date``, ``datetime`` and/or ``time`` from the `datetime`_ package.
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
18 Babel provides functions for locale-specific formatting of those objects in its
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
19 ``dates`` module:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
20
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 42
diff changeset
21 .. _`datetime`: http://docs.python.org/lib/module-datetime.html
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 42
diff changeset
22
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
23 .. code-block:: pycon
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
24
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
25 >>> from datetime import date, datetime, time
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
26 >>> from babel.dates import format_date, format_datetime, format_time
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
27
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
28 >>> d = date(2007, 4, 1)
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
29 >>> format_date(d, locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
30 u'Apr 1, 2007'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
31 >>> format_date(d, locale='de_DE')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
32 u'01.04.2007'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
33
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
34 As this example demonstrates, Babel will automatically choose a date format
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
35 that is appropriate for the requested locale.
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
36
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
37 The ``format_*()`` functions also accept an optional ``format`` argument, which
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
38 allows you to choose between one of four format variations:
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
39
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
40 * ``short``,
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
41 * ``medium`` (the default),
22
9ed365f4cbc8 Fix typo in doc.
cmlenz
parents: 20
diff changeset
42 * ``long``, and
9ed365f4cbc8 Fix typo in doc.
cmlenz
parents: 20
diff changeset
43 * ``full``.
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
44
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
45 For example:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
46
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
47 .. code-block:: pycon
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
48
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
49 >>> format_date(d, format='short', locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
50 u'4/1/07'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
51 >>> format_date(d, format='long', locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
52 u'April 1, 2007'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
53 >>> format_date(d, format='full', locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
54 u'Sunday, April 1, 2007'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
55
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
56
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
57 Pattern Syntax
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
58 --------------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
59
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
60 While Babel makes it simple to use the appropriate date/time format for a given
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
61 locale, you can also force it to use custom patterns. Note that Babel uses
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
62 different patterns for specifying number and date formats compared to the
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
63 Python equivalents (such as ``time.strftime()``), which have mostly been
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
64 inherited from C and POSIX. The patterns used in Babel are based on the
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
65 `Locale Data Markup Language specification`_ (LDML), which defines them as
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
66 follows:
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
67
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
68 A date/time pattern is a string of characters, where specific strings of
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
69 characters are replaced with date and time data from a calendar when formatting
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
70 or used to generate data for a calendar when parsing. […]
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
71
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
72 Characters may be used multiple times. For example, if ``y`` is used for the
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
73 year, ``yy`` might produce "99", whereas ``yyyy`` produces "1999". For most
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
74 numerical fields, the number of characters specifies the field width. For
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
75 example, if ``h`` is the hour, ``h`` might produce "5", but ``hh`` produces
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
76 "05". For some characters, the count specifies whether an abbreviated or full
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
77 form should be used […]
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
78
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
79 Two single quotes represent a literal single quote, either inside or outside
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
80 single quotes. Text within single quotes is not interpreted in any way (except
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
81 for two adjacent single quotes).
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
82
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
83 For example:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
84
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
85 .. code-block:: pycon
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
86
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
87 >>> d = date(2007, 4, 1)
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
88 >>> format_date(d, "EEE, MMM d, ''yy", locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
89 u"Sun, Apr 1, '07"
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
90 >>> format_date(d, "EEEE, d.M.yyyy", locale='de')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
91 u'Sonntag, 1.4.2007'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
92
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
93 >>> t = time(15, 30)
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
94 >>> format_time(t, "hh 'o''clock' a", locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
95 u"03 o'clock PM"
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
96 >>> format_time(t, 'H:mm a', locale='de')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
97 u'15:30 nachm.'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
98
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
99 >>> dt = datetime(2007, 4, 1, 15, 30)
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
100 >>> format_datetime(dt, "yyyyy.MMMM.dd GGG hh:mm a", locale='en')
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
101 u'02007.April.01 AD 03:30 PM'
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
102
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
103 The syntax for custom datetime format patterns is described in detail in the
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
104 the `Locale Data Markup Language specification`_. The following table is just a
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
105 relatively brief overview.
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
106
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
107 .. _`Locale Data Markup Language specification`: http://unicode.org/reports/tr35/#Date_Format_Patterns
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
108
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
109 -----------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
110 Date Fields
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
111 -----------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
112
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
113 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
114 | Field | Symbol | Description |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
115 +==========+========+========================================================+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
116 | Era | ``G`` | Replaced with the era string for the current date. One |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
117 | | | to three letters for the abbreviated form, four |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
118 | | | lettersfor the long form, five for the narrow form |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
119 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
120 | Year | ``y`` | Replaced by the year. Normally the length specifies |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
121 | | | the padding, but for two letters it also specifies the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
122 | | | maximum length. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
123 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
124 | | ``Y`` | Same as ``y`` but uses the ISO year-week calendar. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
125 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
126 | | ``u`` | ?? |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
127 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
128 | Quarter | ``Q`` | Use one or two for the numerical quarter, three for |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
129 | | | the abbreviation, or four for the full name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
130 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
131 | | ``q`` | Use one or two for the numerical quarter, three for |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
132 | | | the abbreviation, or four for the full name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
133 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
134 | Month | ``M`` | Use one or two for the numerical month, three for the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
135 | | | abbreviation, or four for the full name, or five for |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
136 | | | the narrow name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
137 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
138 | | ``L`` | Use one or two for the numerical month, three for the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
139 | | | abbreviation, or four for the full name, or 5 for the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
140 | | | narrow name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
141 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
142 | Week | ``w`` | Week of year. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
143 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
144 | | ``W`` | Week of month. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
145 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
146 | Day | ``d`` | Day of month. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
147 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
148 | | ``D`` | Day of year. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
149 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
150 | | ``F`` | Day of week in month. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
151 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
152 | | ``g`` | ?? |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
153 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
154 | Week day | ``E`` | Day of week. Use one through three letters for the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
155 | | | short day, or four for the full name, or five for the |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
156 | | | narrow name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
157 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
158 | | ``e`` | Local day of week. Same as E except adds a numeric |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
159 | | | value that will depend on the local starting day of |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
160 | | | the week, using one or two letters. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
161 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
162 | | ``c`` | ?? |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
163 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
164
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
165 -----------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
166 Time Fields
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
167 -----------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
168
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
169 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
170 | Field | Symbol | Description |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
171 +==========+========+========================================================+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
172 | Period | ``a`` | AM or PM |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
173 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
174 | Hour | ``h`` | Hour [1-12]. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
175 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
176 | | ``H`` | Hour [0-23]. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
177 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
178 | | ``K`` | Hour [0-11]. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
179 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
180 | | ``k`` | Hour [1-24]. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
181 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
182 | Minute | ``m`` | Use one or two for zero places padding. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
183 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
184 | Second | ``s`` | Use one or two for zero places padding. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
185 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
186 | | ``S`` | Fractional second, rounds to the count of letters. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
187 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
188 | | ``A`` | Milliseconds in day. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
189 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
190 | Timezone | ``z`` | Use one to three letters for the short timezone or |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
191 | | | four for the full name. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
192 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
193 | | ``Z`` | Use one to three letters for RFC 822, four letters for |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
194 | | | GMT format. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
195 | +--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
196 | | ``v`` | Use one letter for short wall (generic) time, four for |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
197 | | | long wall time. |
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
198 +----------+--------+--------------------------------------------------------+
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
199
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
200
33
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
201 Time-Zone Support
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
202 -----------------
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
203
33
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
204 Many of the verbose time formats include the time-zone, but time-zone
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
205 information is not by default available for the Python ``datetime`` and
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
206 ``time`` objects. The standard library includes only the abstract ``tzinfo``
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
207 class, which you need appropriate implementations for to actually use in your
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
208 application. Babel includes a ``tzinfo`` implementation for UTC (Universal
33
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
209 Time).
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
210
df1e2f0ef627 Raise error on unsupported locales. Closes #5.
cmlenz
parents: 31
diff changeset
211 For real time-zone support, it is strongly recommended that you use the
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
212 third-party package `pytz`_, which includes the definitions of practically all
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
213 of the time-zones used on the world, as well as important functions for
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
214 reliably converting from UTC to local time, and vice versa:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
215
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
216 .. code-block:: pycon
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
217
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
218 >>> from datetime import time
36
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
219 >>> from pytz import timezone, utc
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
220 >>> dt = datetime(2007, 04, 01, 15, 30, tzinfo=utc)
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
221 >>> eastern = timezone('US/Eastern')
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
222 >>> format_datetime(dt, 'H:mm Z', tzinfo=eastern, locale='en_US')
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
223 u'11:30 -0400'
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
224
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
225 The recommended approach to deal with different time-zones in a Python
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
226 application is to always use UTC internally, and only convert from/to the users
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
227 time-zone when accepting user input and displaying date/time data, respectively.
36
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
228 You can use Babel together with ``pytz`` to apply a time-zone to any
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
229 ``datetime`` or ``time`` object for display, leaving the original information
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
230 unchanged:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
231
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
232 .. code-block:: pycon
36
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
233
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
234 >>> british = timezone('Europe/London')
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
235 >>> format_datetime(dt, 'H:mm zzzz', tzinfo=british, locale='en_US')
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
236 u'16:30 British Summer Time'
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
237
37
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
238 Here, the given UTC time is adjusted to the "Europe/London" time-zone, and
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
239 daylight savings time is taken into account. Daylight savings time is also
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
240 applied to ``format_time``, but because the actual date is unknown in that
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
241 case, the current day is assumed to determine whether DST or standard time
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
242 should be used.
3b23c60191e0 Add note on daylight savings time.
cmlenz
parents: 36
diff changeset
243
31
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
244 .. _`pytz`: http://pytz.sourceforge.net/
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
245
3956bb7ff93b More work on timezones.
cmlenz
parents: 22
diff changeset
246
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
247 Parsing Dates
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
248 -------------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
249
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
250 Babel can also parse date and time information in a locale-sensitive manner:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
251
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
252 .. code-block:: pycon
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
253
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
254 >>> from babel.dates import parse_date, parse_datetime, parse_time
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
255
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
256
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
257 Number Formatting
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
258 =================
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
259
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
260 Support for locale-specific formatting and parsing of numbers is provided by
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
261 the ``babel.numbers`` module:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
262
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
263 .. code-block:: pycon
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
264
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
265 >>> from babel.numbers import format_number, format_decimal, format_percent
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
266
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
267 Examples:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
268
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
269 .. code-block:: pycon
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
270
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
271 >>> format_decimal(1.2345, locale='en_US')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
272 u'1.234'
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
273 >>> format_decimal(1.2345, locale='sv_SE')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
274 u'1,234'
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
275 >>> format_decimal(12345, locale='de_DE')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
276 u'12.345'
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
277
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
278
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
279 Pattern Syntax
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
280 --------------
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
281
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
282 While Babel makes it simple to use the appropriate number format for a given
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
283 locale, you can also force it to use custom patterns. As with date/time
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
284 formatting patterns, the patterns Babel supports for number formatting are
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
285 based on the `Locale Data Markup Language specification`_ (LDML).
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
286
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
287 Examples:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
288
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
289 .. code-block:: pycon
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
290
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
291 >>> format_decimal(-1.2345, format='#,##0.##;-#', locale='en')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
292 u'-1.23'
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
293 >>> format_decimal(-1.2345, format='#,##0.##;(#)', locale='en')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
294 u'(1.23)'
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
295
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
296 The syntax for custom number format patterns is described in detail in the
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
297 the specification. The following table is just a relatively brief overview.
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
298
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
299 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
300 | Symbol | Description |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
301 +==========+=================================================================+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
302 | ``0`` | Digit |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
303 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
304 | ``1-9`` | '1' through '9' indicate rounding. |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
305 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
306 | ``@`` | Significant digit |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
307 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
308 | ``#`` | Digit, zero shows as absent |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
309 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
310 | ``.`` | Decimal separator or monetary decimal separator |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
311 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
312 | ``-`` | Minus sign |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
313 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
314 | ``,`` | Grouping separator |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
315 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
316 | ``E`` | Separates mantissa and exponent in scientific notation |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
317 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
318 | ``+`` | Prefix positive exponents with localized plus sign |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
319 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
320 | ``;`` | Separates positive and negative subpatterns |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
321 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
322 | ``%`` | Multiply by 100 and show as percentage |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
323 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
324 | ``‰`` | Multiply by 1000 and show as per mille |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
325 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
326 | ``¤`` | Currency sign, replaced by currency symbol. If doubled, |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
327 | | replaced by international currency symbol. If tripled, uses the |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
328 | | long form of the decimal symbol. |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
329 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
330 | ``'`` | Used to quote special characters in a prefix or suffix |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
331 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
332 | ``*`` | Pad escape, precedes pad character |
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
333 +----------+-----------------------------------------------------------------+
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
334
20
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
335
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
336 Parsing Numbers
dce4cfd4ba5d Started documentation for date formatting, plus some code tweaks in that area.
cmlenz
parents: 4
diff changeset
337 ---------------
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
338
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
339 Babel can also parse numeric data in a locale-sensitive manner:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
340
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
341 .. code-block:: pycon
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
342
36
2e143f1a0003 Extended time-zone support.
cmlenz
parents: 34
diff changeset
343 >>> from babel.numbers import parse_decimal, parse_number
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
344
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
345 Examples:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
346
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
347 .. code-block:: pycon
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
348
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
349 >>> parse_decimal('1,099.98', locale='en_US')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
350 1099.98
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
351 >>> parse_decimal('1.099,98', locale='de')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
352 1099.98
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
353 >>> parse_decimal('2,109,998', locale='de')
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
354 Traceback (most recent call last):
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 37
diff changeset
355 ...
34
8b6804eac9e5 Started docs on number formatting/parsing.
cmlenz
parents: 33
diff changeset
356 NumberFormatError: '2,109,998' is not a valid decimal number
Copyright (C) 2012-2017 Edgewall Software