Edgewall Software
Please note:

The documentation here is generated live, in a way that is neither comprehensive nor 100% correct. We strongly recommend using the HTML documentation included with the source tarballs instead.

babel.dates

Locale dependent formatting and parsing of dates and times.

The default locale for the functions in this module is determined by the following environment variables, in that order:

  • LC_TIME,
  • LC_ALL, and
  • LANG

get_period_names(locale=LC_TIME)

Return the names for day periods (AM/PM) used by the locale.

>>> get_period_names(locale='en_US')['am']
u'AM'
param locale:the Locale object, or a locale string
return:the dictionary of period names
rtype:dict

get_day_names(width='wide', context='format', locale=LC_TIME)

Return the day names used by the locale for the specified format.

>>> get_day_names('wide', locale='en_US')[1]
u'Tuesday'
>>> get_day_names('abbreviated', locale='es')[1]
u'mar'
>>> get_day_names('narrow', context='stand-alone', locale='de_DE')[1]
u'D'
param width:the width to use, one of "wide", "abbreviated", or "narrow"
param context:the context, either "format" or "stand-alone"
param locale:the Locale object, or a locale string
return:the dictionary of day names
rtype:dict

get_month_names(width='wide', context='format', locale=LC_TIME)

Return the month names used by the locale for the specified format.

>>> get_month_names('wide', locale='en_US')[1]
u'January'
>>> get_month_names('abbreviated', locale='es')[1]
u'ene'
>>> get_month_names('narrow', context='stand-alone', locale='de_DE')[1]
u'J'
param width:the width to use, one of "wide", "abbreviated", or "narrow"
param context:the context, either "format" or "stand-alone"
param locale:the Locale object, or a locale string
return:the dictionary of month names
rtype:dict

get_quarter_names(width='wide', context='format', locale=LC_TIME)

Return the quarter names used by the locale for the specified format.

>>> get_quarter_names('wide', locale='en_US')[1]
u'1st quarter'
>>> get_quarter_names('abbreviated', locale='de_DE')[1]
u'Q1'
param width:the width to use, one of "wide", "abbreviated", or "narrow"
param context:the context, either "format" or "stand-alone"
param locale:the Locale object, or a locale string
return:the dictionary of quarter names
rtype:dict

get_era_names(width='wide', locale=LC_TIME)

Return the era names used by the locale for the specified format.

>>> get_era_names('wide', locale='en_US')[1]
u'Anno Domini'
>>> get_era_names('abbreviated', locale='de_DE')[1]
u'n. Chr.'
param width:the width to use, either "wide" or "abbreviated"
param locale:the Locale object, or a locale string
return:the dictionary of era names
rtype:dict

get_date_format(format='medium', locale=LC_TIME)

Return the date formatting patterns used by the locale for the specified format.

>>> get_date_format(locale='en_US')
<DateTimePattern u'MMM d, yyyy'>
>>> get_date_format('full', locale='de_DE')
<DateTimePattern u'EEEE, d. MMMM yyyy'>
param format:the format to use, one of "full", "long", "medium", or "short"
param locale:the Locale object, or a locale string
return:the date format pattern
rtype:DateTimePattern

get_datetime_format(format='medium', locale=LC_TIME)

Return the datetime formatting patterns used by the locale for the specified format.

>>> get_datetime_format(locale='en_US')
u'{1} {0}'
param format:the format to use, one of "full", "long", "medium", or "short"
param locale:the Locale object, or a locale string
return:the datetime format pattern
rtype:unicode

get_time_format(format='medium', locale=LC_TIME)

Return the time formatting patterns used by the locale for the specified format.

>>> get_time_format(locale='en_US')
<DateTimePattern u'h:mm:ss a'>
>>> get_time_format('full', locale='de_DE')
<DateTimePattern u"H:mm' Uhr 'z">
param format:the format to use, one of "full", "long", "medium", or "short"
param locale:the Locale object, or a locale string
return:the time format pattern
rtype:DateTimePattern

format_date(date=None, format='medium', locale=LC_TIME)

Return a date formatted according to the given pattern.

>>> d = date(2007, 04, 01)
>>> format_date(d, locale='en_US')
u'Apr 1, 2007'
>>> format_date(d, format='full', locale='de_DE')
u'Sonntag, 1. April 2007'

If you don't want to use the locale default formats, you can specify a custom date pattern:

>>> format_date(d, "EEE, MMM d, ''yy", locale='en')
u"Sun, Apr 1, '07"
param date:the date or datetime object; if None, the current date is used
param format:one of "full", "long", "medium", or "short", or a custom date/time pattern
param locale:a Locale object or a locale identifier
rtype:unicode
note:If the pattern contains time fields, an AttributeError will be raised when trying to apply the formatting. This is also true if the value of date parameter is actually a datetime object, as this function automatically converts that to a date.

format_datetime(datetime=None, format='medium', tzinfo=None, locale=LC_TIME)

Return a date formatted according to the given pattern.

>>> dt = datetime(2007, 04, 01, 15, 30)
>>> format_datetime(dt, locale='en_US')
u'Apr 1, 2007 3:30:00 PM'

For any pattern requiring the display of the time-zone, the third-party pytz package is needed to explicitly specify the time-zone:

>>> from pytz import timezone
>>> format_datetime(dt, 'full', tzinfo=timezone('Europe/Berlin'),
...                 locale='de_DE')
u'Sonntag, 1. April 2007 17:30 Uhr MESZ'
>>> format_datetime(dt, "yyyy.MM.dd G 'at' HH:mm:ss zzz",
...                 tzinfo=timezone('US/Eastern'), locale='en')
u'2007.04.01 AD at 11:30:00 EDT'
param datetime:the datetime object; if None, the current date and time is used
param format:one of "full", "long", "medium", or "short", or a custom date/time pattern
param tzinfo:the timezone to apply to the time for display
param locale:a Locale object or a locale identifier
rtype:unicode

format_time(time=None, format='medium', tzinfo=None, locale=LC_TIME)

Return a time formatted according to the given pattern.

>>> t = time(15, 30)
>>> format_time(t, locale='en_US')
u'3:30:00 PM'
>>> format_time(t, format='short', locale='de_DE')
u'15:30'

If you don't want to use the locale default formats, you can specify a custom time pattern:

>>> format_time(t, "hh 'o''clock' a", locale='en')
u"03 o'clock PM"

For any pattern requiring the display of the time-zone, the third-party pytz package is needed to explicitly specify the time-zone:

>>> from pytz import timezone
>>> t = time(15, 30)
>>> format_time(t, format='full', tzinfo=timezone('Europe/Berlin'),
...             locale='de_DE')
u'17:30 Uhr MESZ'
>>> format_time(t, "hh 'o''clock' a, zzzz", tzinfo=timezone('US/Eastern'),
...             locale='en')
u"11 o'clock AM, Eastern Daylight Time"
param time:the time or datetime object; if None, the current time is used
param format:one of "full", "long", "medium", or "short", or a custom date/time pattern
param tzinfo:the time-zone to apply to the time for display
param locale:a Locale object or a locale identifier
rtype:unicode
note:If the pattern contains date fields, an AttributeError will be raised when trying to apply the formatting. This is also true if the value of time parameter is actually a datetime object, as this function automatically converts that to a time.

parse_date(string, locale=LC_TIME)

Parse a date from a string.

This function uses the date format for the locale as a hint to determine the order in which the date fields appear in the string.

>>> parse_date('4/1/04', locale='en_US')
datetime.date(2004, 4, 1)
>>> parse_date('01.04.2004', locale='de_DE')
datetime.date(2004, 4, 1)
param string:the string containing the date
param locale:a Locale object or a locale identifier
return:the parsed date
rtype:date

parse_datetime(string, locale=LC_TIME)

Parse a date and time from a string.

This function uses the date and time formats for the locale as a hint to determine the order in which the time fields appear in the string.

param string:the string containing the date and time
param locale:a Locale object or a locale identifier
return:the parsed date/time
rtype:datetime

parse_time(string, locale=LC_TIME)

Parse a time from a string.

This function uses the time format for the locale as a hint to determine the order in which the time fields appear in the string.

>>> parse_time('15:30:00', locale='en_US')
datetime.time(15, 30)
param string:the string containing the time
param locale:a Locale object or a locale identifier
return:the parsed time
rtype:time

DateTimePattern

(Not documented)

apply(self, datetime, locale)

(Not documented)

DateTimeFormat

(Not documented)

format_era(self, char, num)

(Not documented)

format_year(self, char, num)

(Not documented)

format_month(self, char, num)

(Not documented)

format_weekday(self, char, num)

(Not documented)

format_period(self, char)

(Not documented)

format_timezone(self, char, num)

(Not documented)

format(self, value, length)

(Not documented)

parse_pattern(pattern)

Parse date, time, and datetime format patterns.

>>> parse_pattern("MMMMd").format
u'%(MMMM)s%(d)s'
>>> parse_pattern("MMM d, yyyy").format
u'%(MMM)s %(d)s, %(yyyy)s'

Pattern can contain literal strings in single quotes:

>>> parse_pattern("H:mm' Uhr 'z").format
u'%(H)s:%(mm)s Uhr %(z)s'

An actual single quote can be used by using two adjacent single quote characters:

>>> parse_pattern("hh' o''clock'").format
u"%(hh)s o'clock"
param pattern:the formatting pattern to parse


See ApiDocs/0.8, Documentation

Last modified 15 months ago Last modified on Dec 10, 2015 6:25:47 AM