dateparser package

Submodules

dateparser.conf module

class dateparser.conf.Settings(settings=None)[source]

Bases: object

Control and configure default parsing behavior of dateparser. Currently, supported settings are:

  • PREFER_DATES_FROM: defaults to current_period. Options are future or past.
  • SUPPORT_BEFORE_COMMON_ERA: defaults to False.
  • PREFER_DAY_OF_MONTH: defaults to current. Could be first and last day of month.
  • SKIP_TOKENS: defaults to [‘t’]. Can be any string.
  • TIMEZONE: defaults to UTC. Can be timezone abbreviation or any of tz database name as given here.
  • RETURN_AS_TIMEZONE_AWARE: return tz aware datetime objects in case timezone is detected in the date string.
classmethod get_key(settings=None)[source]
replace(**kwds)[source]
dateparser.conf.apply_settings(f)[source]

dateparser.date module

class dateparser.date.DateDataParser(*args, **kwargs)[source]

Bases: object

Class which handles language detection, translation and subsequent generic parsing of string representing date and/or time.

Parameters:
  • languages (list) – A list of two letters language codes, e.g. [‘en’, ‘es’]. If languages are given, it will not attempt to detect the language.
  • allow_redetect_language (bool) – Enables/disables language re-detection.
  • settings (dict) – Configure customized behavior using settings defined in dateparser.conf.Settings.
Returns:

A parser instance

Raises:

ValueError - Unknown Language, TypeError - Languages argument must be a list

get_date_data(date_string, date_formats=None)[source]

Parse string representing date and/or time in recognizable localized formats. Supports parsing multiple languages and timezones.

Parameters:
  • date_string (str|unicode) – A string representing date and/or time in a recognizably valid format.
  • date_formats (list) – A list of format strings using directives as given here. The parser applies formats one by one, taking into account the detected languages.
Returns:

a dict mapping keys to datetime.datetime object and period. For example: {‘date_obj’: datetime.datetime(2015, 6, 1, 0, 0), ‘period’: u’day’}

Raises:

ValueError - Unknown Language

Note

Period values can be a ‘day’ (default), ‘week’, ‘month’, ‘year’.

Period represents the granularity of date parsed from the given string.

In the example below, since no day information is present, the day is assumed to be current day 16 from current date (which is June 16, 2015, at the moment of writing this). Hence, the level of precision is month:

>>> DateDataParser().get_date_data(u'March 2015')
{'date_obj': datetime.datetime(2015, 3, 16, 0, 0), 'period': u'month'}

Similarly, for date strings with no day and month information present, level of precision is year and day 16 and month 6 are from current_date.

>>> DateDataParser().get_date_data(u'2014')
{'date_obj': datetime.datetime(2014, 6, 16, 0, 0), 'period': u'year'}

Dates with time zone indications or UTC offsets are returned in UTC time unless specified using `Settings`_.

>>> DateDataParser().get_date_data(u'23 March 2000, 1:21 PM CET')
{'date_obj': datetime.datetime(2000, 3, 23, 14, 21), 'period': 'day'}
language_loader = <dateparser.languages.loader.LanguageDataLoader object>
dateparser.date.date_range(begin, end, **kwargs)[source]
dateparser.date.get_date_from_timestamp(date_string)[source]
dateparser.date.get_intersecting_periods(low, high, period='day')[source]
dateparser.date.get_last_day_of_month(year, month)[source]
dateparser.date.parse_with_formats(date_string, date_formats)[source]

Parse with formats and return a dictionary with ‘period’ and ‘obj_date’.

Returns:datetime.datetime, dict or None
dateparser.date.sanitize_date(date_string)[source]
dateparser.date.sanitize_spaces(html_string)[source]

dateparser.date_parser module

class dateparser.date_parser.DateParser[source]

Bases: object

parse(*args, **kwargs)[source]
dateparser.date_parser.dateutil_parse(date_string, settings=None, **kwargs)[source]

Wrapper function around dateutil.parser.parse

class dateparser.date_parser.new_parser(info=None)[source]

Bases: dateutil.parser.parser

Implements an alternate parse method which supports preference to dates in future and past. For more see issue #36

static get_period(res)[source]
static get_valid_day(*args, **kwargs)[source]
parse(timestr, default=None, ignoretz=False, settings=None, **kwargs)[source]

dateparser.freshness_date_parser module

class dateparser.freshness_date_parser.FreshnessDateDataParser[source]

Bases: object

Parses date string like “1 year, 2 months ago” and “3 hours, 50 minutes ago”

get_date_data(date_string, settings=None)[source]
get_kwargs(date_string)[source]
now
parse(date_string, settings)[source]

dateparser.timezone_parser module

class dateparser.timezone_parser.StaticTzInfo(name, offset)[source]

Bases: datetime.tzinfo

dst(dt)[source]
localize(dt, is_dst=False)[source]
tzname(dt)[source]
utcoffset(dt)[source]
dateparser.timezone_parser.convert_to_local_tz(datetime_obj, datetime_tz_offset)[source]
dateparser.timezone_parser.get_local_tz_offset()[source]
dateparser.timezone_parser.get_tz_offsets()[source]
dateparser.timezone_parser.pop_tz_offset_from_string(date_string, as_offset=True)[source]

dateparser.timezones module

dateparser.utils module

dateparser.utils.apply_dateparser_timezone(utc_datetime, offset_or_timezone_abb)[source]
dateparser.utils.apply_timezone(date_time, tz_string)[source]
dateparser.utils.apply_tzdatabase_timezone(date_time, pytz_string)[source]
dateparser.utils.find_date_separator(format)[source]
dateparser.utils.get_logger()[source]
dateparser.utils.increase_regex_replacements_group_positions(replacement, increment)[source]
dateparser.utils.is_dateutil_result_obj_parsed(date_string)[source]
dateparser.utils.normalize_unicode(string, form='NFKD')[source]
dateparser.utils.registry(cls)[source]
dateparser.utils.setup_logging()[source]
dateparser.utils.strip_braces(date_string)[source]
dateparser.utils.wrap_replacement_for_regex(replacement, regex)[source]

Module contents

dateparser.parse(*args, **kwargs)[source]

Parse date and time from given date string.

Parameters:
  • date_string (str|unicode) – A string representing date and/or time in a recognizably valid format.
  • date_formats (list) –

    A list of format strings using directives as given here. The parser applies formats one by one, taking into account the detected languages.

  • languages (list) – A list of two letters language codes.e.g. [‘en’, ‘es’]. If languages are given, it will not attempt to detect the language.
  • settings (dict) – Configure customized behavior using settings defined in dateparser.conf.Settings.
Returns:

Returns datetime representing parsed date if successful, else returns None

Return type:

datetime.

Raises:

ValueError - Unknown Language