NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #504 most downloaded on PyPI
Date parsing library designed to parse dates from HTML pages
Last release 1 months ago
03 Sep 2026
Release timing varies
gaps range from 2 weeks to 1.2 years
Nearly every release is documented
notes for 37 of 37 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
37 releases · first in 2014
Make parsing thread-safe: parsing from several threads no longer raises an intermittent KeyError from the shared language caches, and a DATE_ORDER or
Fixes:
KeyError from the shared language caches,DATE_ORDER or RELATIVE_BASE value meant for one parse nosearch_dates() calls, so concurrent searches over text inNone or a date read in theBST and HDT timezone abbreviations to the offsetsCST and IST, keep theirBST and 30 minutes for HDT, which can%j (day of year) value that the parsed year does notdate_formats=["%Y%j"] returns None rather than 2000-01-01. Astrptimedate_formats=["%j"] now returns None where it used to returnCleanups and internal improvements:
One column per quarter.
Add an IGNORE_SURROUNDING_TEXT setting that, when enabled, retries parsing after ignoring leading and trailing words the language does not recognize,
IGNORE_SURROUNDING_TEXT setting that, when enabled, retries parsing after ignoring leading and trailing words the language does not recognize, so a date wrapped in extra text such as "Published on
16/04/2019" is parsed (#1356)strategy argument to search_dates() to choose the search strategy: the default "split" keeps the current behavior, while the new "ngram" strategy parses the longest sequences of tokens as
dates for more predictable results on noisy text (#1351)it or fr is given, without needing to set PREFER_LOCALE_DATE_ORDER to
False (#1352)PREFER_DATES_FROM and RELATIVE_BASE when parsing with custom date_formats that use a two-digit year (%y) (#1342)%j (day of year) directive in date_formats instead of overwriting the parsed month and day with the current date (#1345)Remove fastText language detection support: the fasttext extra is dropped and detect_languages() now raises ImportError. Migrate to the langdetect ext
Breaking changes:
fasttext extra is
dropped and detect_languages() now raises ImportError. Migrate to
the langdetect extra, which also unblocks numpy 2.x compatibility
(#1315)Security fixes:
New features:
USE_GIVEN_LANGUAGE_ORDER setting to try languages and
locales in the order given rather than by frequency (#789)Fixes:
search_dates when the
detected language yields no dates (#1331)now for the current month when filling in
incomplete dates so the month and day stay consistent (#1332)nb) parsing of relative date expressions such
as "3 måneder siden" and "om 2 måneder" (#1334)Improvements:
pyproject.toml (#1311)OrderedDict usage with the built-in dict (#1328)Remove import-time loading of timezone offset data from pickle to prevent unsafe deserialization from packaged data
Security fixes:
eval() use when parsing no_word_spacing with strict boolean
parsing to prevent code execution from locale metadata (#1056)New features:
en-US locale (#1222)Fixes:
REQUIRE_PARTS for ambiguous month-number inputs by retrying with a
year-biased DATE_ORDER (#1298)Improvements:
setup.py install guidance
(#1310)search_dates() can now detect time spans from expressions like “past month”, “last week”, etc. For details, see the “Time Span Detection” section and
Dropped Python 3.9 support. (#1296)
New features:
search_dates() can now detect time spans from expressions like “past
month”, “last week”, etc. For details, see the “Time Span Detection” section
and the RETURN_TIME_SPAN, DEFAULT_START_OF_WEEK and
DEFAULT_DAYS_IN_MONTH settings in the documentation. (#1284)Fixes:
Cleanups and internal improvements:
Handle the Russian preposition “с”
Fixes:
Improvements:
Fix date_parser with prefer_month_of_year wrong results
Fixes:
Improvements:
numpy to 1.x when installing dateparser[fasttext] (#1248)Removed the use of datetime.utcnow, deprecated on Python 3.12
New features:
PREFER_MONTH_OF_YEAR setting (#1146)Fixes:
Cleanups and internal improvements:
datetime.utcnow, deprecated on Python 3.12 (#1179)Improved date parsing for Chinese
Improvements:
Add an “ago” synonym for Arabic
Improvements:
Fix the bug where Monday is parsed as a month
Improvements:
Parse short versions of day, month, and year
Improvements:
Cleanups:
Improved support for languages such as Slovak, Indonesian, Hindi, German, and Japanese (#1064, #1094, #986, #1071, #1068)
Improvements:
Add support for fractional units
New features:
Improvements:
Cleanups:
Added support for negative timestamp
Improvements:
Fixed issue with regex library by pinning dependencies to an earlier version (< 2022.3.15, https://github.com/scrapinghub/dateparser/pull/1046).
Improvements:
Improvements:
Fixed issue with regex library by pinning dependencies to an earlier version (< 2022.3.15, #1046).
Extended support for Russian language dates starting with lowercase (#999).
Allowed to use_given_order for languages too (#997).
Fixed link to settings section (#1018).
Defined UTF-8 encoding for Windows (#998).
Fixed directories creation error in CLI utils (#1022).
Support language detection based on langdetect, fastText, or a custom implementation (see #932)
New features:
langdetect, fastText, or a custom implementation (see #932)Improvements:
search_dates (see #953)RETURN_TIME_AS_PERIOD for timestamp times (see #922)QA:
Changes in dateparser.utils: normalize_unicode() doesn't accept bytes as input and convert_to_unicode has been deprecated (see #749)
Breaking changes:
DateDataParser.get_date_data() returns a DateData object instead of a dict (see #778).settings are not silenced and raise SettingValidationError (see #797)dateparser.parse() is deterministic and doesn't try previous locales. Also, DateDataParser.get_date_data() doesn't try the previous locales by default (see #781)'base-formats' parser (see #721)'no-spaces-time' parser from the 'absolute-time' parser and make it an optional parser (see #786)numeral_translation_data (see #782)SKIP_TOKENS_PARSER and FUZZY settings (see #728, #794)date_formats (see #726)ExactLanguageSearch class has been moved to the private scope and some internal methods have changed (see #778)dateparser.utils: normalize_unicode() doesn't accept bytes as input and convert_to_unicode has been deprecated (see #749)New features:
Improvements:
PREFER_DATES_FROM is set (see #738)STRICT_PARSING setting in no-spaces-time parser (see #715)RETURN_AS_TIME_PERIOD setting for relative-time parser (see #807)Rename scripts to dateparser_scripts to avoid name collisions with modules from other packages or projects (see https://github.com/scrapinghub/datepar
Improvements:
scripts to dateparser_scripts to avoid name collisions with modules from other packages or projects (see https://github.com/scrapinghub/dateparser/pull/707)Add Python 3.8 support (see https://github.com/scrapinghub/dateparser/pull/664)
New features:
REQUIRE_PARTS setting (see https://github.com/scrapinghub/dateparser/pull/703)Improvements:
yaml and json files content (see https://github.com/scrapinghub/dateparser/pull/663 and https://github.com/scrapinghub/dateparser/pull/692)OverflowError errors and explicitly avoid to raise ValueError when parsing relative dates (see https://github.com/scrapinghub/dateparser/pull/686)DATE_ORDER (see https://github.com/scrapinghub/dateparser/pull/628)'future' in PREFER_DATES_FROM (see https://github.com/scrapinghub/dateparser/pull/629)New features:
Add Python 3.8 support (see #664)
Implement a REQUIRE_PARTS setting (see #703)
Add support for subscript and superscript numbers (see #684)
Extended French support (see #672)
Extended German support (see #673)
Improvements:
Migrate test suite to Pytest (see #662)
Add test to check the yaml and json files content (see #663 and #692)
Add flake8 pipeline with pytest-flake8 (see #665)
Add partial support for 8-digit dates without separators (see #639)
Fix possible OverflowError errors and explicitly avoid to raise ValueError when parsing relative dates (see #686)
Fix double-digit GMT and UTC parsing (see #632)
Fix bug when using DATE_ORDER (see #628)
Fix bug when parsing relative time with timezone (see #503)
Fix milliseconds parsing (see #572 and #661)
Fix wrong values to be interpreted as 'future' in PREFER_DATES_FROM (see #629)
Other small improvements (see #667, #675, #511, #626, #512, #509, #696, #702 and #699)
Resolve DeprecationWarning related to raw string escape sequences (see https://github.com/scrapinghub/dateparser/pull/596)
New features
Improvements
New features:
Extended Norwegian support (see #598)
Implement a PARSERS setting (see #603)
Improvements:
Add support for PREFER_DATES_FROM in relative/freshness parser (see #414)
Add support for PREFER_DAY_OF_MONTH in base-formats parser (see #611)
Added UTC -00:00 as a valid offset (see #574)
Fix support for “one” (see #593)
Fix TypeError when parsing some invalid dates (see #536)
Fix tokenizer for non recognized characters (see #622)
Prevent installing regex 2019.02.19 (see #600)
Resolve DeprecationWarning related to raw string escape sequences (see #596)
Implement a tox environment to build the documentation (see #604)
Improve tests stability (see #591, #605)
Documentation improvements (see #510, #578, #619, #614, #620)
Performance improvements (see #570, #569, #625)
Added timezone information to dates found with search_dates()
Features:
time to valid periodssearch_dates()Improvements:
importlib from imp where possibleAdded detected language to return value of search_dates()
Features/news:
search_dates()Improvements:
DateTime objects with timezonesre.split() in Python 3.7ZeroDivisionError exceptionsFeatures added during Google Summer of Code 2017:
Features added during Google Summer of Code 2017:
New features:
Improvements:
Planned for next release:
Consistent parsing in terms of true python representation of date string. See #281
New features:
Improvements:
Packaging:
Safer loading of YAML. See #251
New features:
Improvements:
DateDataParser now also returns detected language in the result dictionary.
New features:
DateDataParser now also returns detected language in the result dictionary.TIMEZONE, TO_TIMEZONE settings.STRICT_PARSING to ignore imcomplete dates.Improvements:
Support for Language based date order preference while parsing ambiguous dates.
New features:
settings.tomorrow, in two weeks, etc.RELATIVE_BASE settings to set date context to any datetime in past or future.Improvements:
12 noon and 12 midnight.ruamel.yaml which also fixed the issues with installation on windows using python35.date_formats handling.Support for parsing date strings with accents.
New features:
Improvements:
Fixed broken version 0.3.3 by excluding latest python-dateutil version.
Improvements:
Faster parsing with switching to regex module.
New features:
Improvements:
RETURN_AS_TIMEZONE_AWARE setting to return tz aware date object.Added settings for better control over parsing dates.
New features: - Added Hijri Calendar support. - Added settings for better control over parsing dates. - Support to convert parsed time to the given timezone for both complete and relative dates.
Improvements: - Fixed problem with caching datetime.now in FreshnessDateDataParser. - Added month names and week day names abbreviations to several languages. - More simplifications for Russian and Ukranian languages. - Fixed problem with parsing time component of date strings with several kinds of apostrophes.
Extended support for Russian and Polish.
New features:
Improvements:
Compatibility with Python 3 and PyPy.
New features:
Improvements:
languages.yaml data cleaned up to make it human-readable.Support for generic parsing of dates with UTC offset.
Support for generic parsing of dates with UTC offset.
Support for Tagalog/Filipino dates.
Improved support for French and Spanish dates.
Languages definitions using YAML.
Easy to use parse function
Languages definitions using YAML.
Using translation based approach for parsing non-english languages. Previously, dateutil.parserinfo was used for language definitions.
Better period extraction.
Improved tests.
Added a number of new simplifications for more comprehensive generic parsing.
Improved validation for dates.
Support for Polish, Thai and Arabic dates.
Support for pytz timezones.
Fixed building and packaging issues.
* First release on PyPI.
First release on PyPI.
Your coding agent can read these notes before it upgrades. Set up the MCP server →