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
