History
1.5.0 (2026-11-04)
Breaking changes:
DateData.periodcan take the new values"quarter"and"part_of_day", and withRETURN_TIME_AS_PERIODenabled a relative date with hours, minutes or seconds, such as “2 hours ago”, now has the"time"period instead of"day"(#1417, #1437, #1473)Stop caching and sharing
Settingsinstances: creating one with the same settings twice now gives two different objects, and theSettings.registry_keyattribute no longer exists (#1442)Remove the leftovers of fastText support from
dateparser_cli: thefasttext_managerandexceptionsmodules andutils.create_data_model_home();utils.dateparser_model_homeandutils.DEFAULT_WINDOWS_CACHE_DIRare nowpathlib.Pathobjects (#1406)Remove
Locale.to_parserinfo()andHijriDate.weekday(), which always raised an exception (#1406, #1457)
Deprecations:
Deprecate
dateparser.timezone_parser.convert_to_local_tz()(#1481) anddateparser.timezone_parser.build_tz_offsets()(#1405)Emit a
FutureWarningnaming theTZvalue fromparse(),DateDataParserandsearch_dates()when the local timezone cannot be determined; a future version will raiseRuntimeErrorinstead of failing to parse the date (#1403, #1556)Deprecate
dateparser.utils.registry()andSettings.get_key(), which now emit aFutureWarning(#1442, #1556)Deprecate
get_week_start()andget_week_end()indateparser.utils.time_spans, and callinggenerate_time_span()withoutbase_dateorsettings; all of them now emit aFutureWarning(#1393, #1556)Deprecate
dateparser.date.RE_TRIM_COLONS(GHSA-fmxc-97cw-ph6p)
Security fixes:
Make sentence splitting in
search_dates()linear on long punctuation runs, to prevent quadratic backtracking (ReDoS) for Arabic, Bengali, Cantonese, Chinese, Hindi, Japanese and Persian (GHSA-rx9v-94ff-9cc2)Prevent quadratic regex matching (ReDoS) on long digit runs in Cantonese, Chinese and Japanese, and a
ValueErroron runs of more than 4,300 digits on Python 3.10.7 and later (GHSA-g8fh-jxm9-6qfx)Bound the lookahead of the Chinese month simplification, to prevent quadratic parsing time on long runs of numbers followed by 月 (GHSA-q7fp-xwcm-6x9f)
Prevent quadratic regex matching (ReDoS) on long runs of digits or whitespace (GHSA-gqj4-wf6c-wmcg)
Strip trailing colons in linear time, to prevent quadratic backtracking (ReDoS) on long colon runs (GHSA-fmxc-97cw-ph6p)
Split strings into known words in linear time, to prevent quadratic parsing time on long runs of words like month names (GHSA-jxmm-w6rw-32ch)
New features:
Add a
STRICT_DATE_ORDERsetting that turns an explicitDATE_ORDERfrom a preference into a requirement:"year"reads a two-digit year only from the positionDATE_ORDERgives it, and"all"also keeps the day and month where the order puts them (#1443)Add a
TIMEZONE_ABBREVIATIONSsetting to override the offset of timezone abbreviations, e.g. to readISTas India Standard Time instead of Israel Standard Time (#1415)Parse parts of the day, such as “tomorrow morning”, “this evening” or “8 in the evening”, at the times set by the new
PARTS_OF_DAYsetting; the newDateData.part_of_dayattribute tells which one was found (#1473, #1562)Add
DateData.parts, which lists the date parts (day, month, year, time…) read from the input rather than filled in from defaults (#1408)Add an
add_periodargument tosearch_dates()to also return the period of each date (#1437)Add a
date_formatsargument tosearch_dates(), to find dates written in the given formats; it requiresstrategy="ngram"and raisesValueErrorwith the default"split"strategy (#1436)Add the French Republican calendar and the Minguo (Taiwanese) calendar (#1483, #1489)
Parse calendar quarters, such as “2025Q1”, “2025-Q3” or “Q4 2025”, as a month of that quarter picked by
PREFER_MONTH_OF_YEAR(by default, the month as far into the quarter as the current month is into its own) (#1417)Parse “last”, “this” and “next” before a weekday in English, e.g. “next Friday”, as the closest occurrence of that weekday before, on or after, and after the current date, whatever
PREFER_DATES_FROMis, except for the abbreviations “wed”, “sat” and “sun”;search_dates()now includes the word in its matches (#1401)Parse “the Nth of last/this/next month” as a day of that month (#1414)
Parse Roman numeral years written in capitals, e.g. “5 March MDCCLXXVI”; a short one such as “MMX” is read as a year only next to a month name, e.g. “April MMX” (#1482)
Parse dates with a bare UTC offset, such as “+03” (#1475)
Parse AM/PM written before the time, e.g. “PM 2:26” or “下午 02:26:26” (#1469)
Parse ISO 8601 fractional seconds written with a decimal comma, e.g. “12:30:45,123” (#1467)
Parse English number words from thirteen to ninety-nine, e.g. “forty-five seconds ago” (#1416)
Parse “fortnight” and “century” in English relative dates, and read “a decade from now” as the future instead of the past (#1539)
Match month and weekday names in
date_formatsin the given languages, so formats with literal text work, e.g. “el %d de %B de %Y” for “el 15 de junio de 2020” withlanguages=["es"](#1486, #1552)When a date does not parse, try the other meanings of ambiguous words, such as Spanish “mar” (martes or marzo) (#1491), and read a token that is both a weekday and a month abbreviation as the weekday when that is what fits (#1476)
In
search_dates(), find dates written:right after a label and a colon in Chinese or Japanese, e.g. “日期:2020年12月28日” (#1407)
next to a relative date without a comma (#1385)
joined by words that search skips, like “and” (#1488)
inside parentheses, square brackets or straight quotes, e.g.
'He said "May 5, 2020"'or “(Friday)” (#1401, #1565)
Fixes:
Take the current date, used to fill in the missing parts of a date such as “12:30” or “Nov” and to apply
PREFER_DATES_FROM, from theTIMEZONEsetting (the local time zone by default) instead of UTC (#1427)Keep the
%zoffset when parsing withdate_formats, and return a timezone-aware date for it unlessRETURN_AS_TIMEZONE_AWAREisFalse(#1424)Read year-first dates, such as “2021-01-13”, as YMD unless
DATE_ORDERstarts with the year (#1419)Swap the day and the month when they do not fit an explicit
DATE_ORDER, whatever its value, e.g. “01/13/2021” withDMY(#1431)Read a lone number next to a four-digit year as the month under any
DATE_ORDER(#1472)Apply
PREFER_DAY_OF_MONTHbeforePREFER_DATES_FROMpicks the year (#1409), and applyPREFER_DAY_OF_MONTHandPREFER_MONTH_OF_YEARto relative dates such as “last year” (#1413)Apply an explicit
DATE_ORDERto every date thatsearch_dates()finds, not only to the first one (#1535)Stop dropping extra numbers when parsing dates: a string with more numbers than a date has, such as “5 10 Jan 2020” or “03/04/2021 5”, now returns
Noneinstead of a date built from some of them (#1480)Stop reading two adjacent numbers of a Russian numeric date as one compound ordinal, so
parse("20 03 2021", languages=["ru"])returns 20 March 2021 instead of the 23rd of the current month (#1554)Return
Nonefor strings with only skipped words, such as “year” or “hour minute”, instead of today, which also stopssearch_dates()from returning them (#1440, #1564)Stop ignoring numbers without a unit in relative dates, so “03/06/2020 hour”, “03/06/2020 day” or “01.02.2011 godz. 08:39” no longer parse as a number of hours or days ago (#1410)
Stop reading “Nth day” as a number of days, e.g. “the 1st day of March 2015” (#1412)
Parse “at 22h” and “à 22h” as a time of day, not as hours ago; a bare “à 22h” is still read as English hours ago unless
languages=["fr"]is given or the text has other French words, such as “demain à 22h” (#1441)Keep the future direction of a relative expression that
search_dates()finds next to punctuation, e.g. “in 2 hours, thanks” (#1391)Stop French “sept” being read as 7 when it means September, e.g. “1 sept 2024” with
languages=["fr"]and “le 3 sept à 10h” with or withoutlanguages; “sept” now means 7 only before a duration unit or a clock time (“sept jours”, “sept heures”, “sept:30”), so a day written as a word, as in “sept mai 2020”, no longer parses, and a bare “sept” is read as September (#1353)Parse dates with a numeric offset followed by a redundant timezone abbreviation, e.g. “-0500 (CDT)”, or with an abbreviation glued to the time, e.g. “2019-09-28WIB19:17:34” (#1348)
Recognize UTC offsets written with Unicode dash-like characters, such as “−05:00” (#1474)
Keep complete week dates (year, week number and weekday) when parsing with
date_formats, including%GISO week years (#1381)Fix negative timestamps with subseconds (#1387)
Keep AM when searching for dates after a time (#1400)
Keep full stops between digits in
search_dates()sentences (#1471)Fix
search_dates()dropping text next to a standalone accent mark (#1505)Fix
search_dates()raisingIndexErrorfor thezh-Hans,zh-Hantandyuelocales, including when it detects one of them in the text, e.g. “聽日” (#1401, #1407)In
search_dates(), include the closing bracket in the matched text, e.g. “8 May 2020 (16:05)”, and stop including separators such as “/” or “|” (#1401)Split a relative date from a numeric date that follows it in
search_dates(), e.g. “3 days later on 2010-05-10” (#1430)Stop growing internal caches with every distinct
RELATIVE_BASEvalue (#1442)Fix
parse()andDateDataParserreturningNonewhenregiondoes not match the language of the text, e.g.parse("12 mars 2020", languages=["fr"], region="MX")orparse("5 de marzo de 2020", region="US")(#1423)Fix
dateparser.utils.get_logger()raisingAttributeErrorwhenlogging.confighad not been imported (#1457)
Improvements:
Speed up
parse()by about 35% (#1544), skip locales that cannot change the outcome of a failed parse (#1390), and speed up import by compiling the timezone regexes lazily (#1405)Arabic: parse relative dates that use قبل for “ago” (#1397), Egyptian and informal ة→ه spellings (#1493), numbered Levantine month names such as “كانون 2” in the
ar-SY,ar-JO,ar-LB,ar-PSandar-IQlocales only, e.g.locales=["ar-SY"]orregion="SY"(#1511), Arabic dates typed with Persian yeh and kaf and Persian dates typed with Arabic ones (#1423), and Arabic month names and Arabic-Indic digits in Hijri dates (#1432)Chinese: add the supplementary data of
zhtozh-Hansandzh-Hant(#1407), and parse 后天, 大后天 and 大前天 as relative days (#1430)Chinese and Japanese: parse dates with spaces around 年, 月 and 日 (#1477, #1566)
French: parse “midi” as noon, e.g. “demain à midi” (“après-midi” and “avant midi” are still not read as noon); this also applies when no
languagesare given, sosearch_dates()can return “MIDI” in an English text as 12:00 (#1536)Indonesian: add old-style month abbreviations, such as “Djan” or “Peb” (#1501)
Korean: parse absolute dates written with 년, 월, 일, 시 and 분 (#1434)
Slovak: parse “pozajtra” (#1430)
Swedish: parse ordinal day suffixes like “24:e” and “1:a” (#1484)
Thai: parse relative dates with spaced ago/in words (#1411)
Vietnamese: parse dates with zero-padded months (#1338, #1563)
Add type hints (#1457)
Document
search_dates()in the API reference (#1468), add a performance section (#1494), explain howDEFAULT_LANGUAGESrelates to thelanguagesargument (#1422) and howdate_formatsfalls back to the other parsers (#1549)Show the whole README on PyPI (#1359)
1.4.3 (2026-09-03)
Fixes:
Make parsing thread-safe: parsing from several threads no longer raises an intermittent
KeyErrorfrom the shared language caches, and aDATE_ORDERorRELATIVE_BASEvalue meant for one parse no longer leaks into the settings that other parses read, where it could make them return a wrong date (#1346)Do not share the language detector and the detected locale between
search_dates()calls, so concurrent searches over text in different languages no longer returnNoneor a date read in the wrong locale (#1371)Resolve the
BSTandHDTtimezone abbreviations to the offsets the tz database gives them, UTC+1 (British Summer Time) and UTC-9 (Hawaii-Aleutian Daylight Time), instead of +11 and -9:30, which no zone goes by those names today; abbreviations that the tz database maps to more than one offset, such asCSTandIST, keep their current offset. Text carrying these abbreviations keeps its wall clock but moves by 10 hours forBSTand 30 minutes forHDT, which can put the parsed instant on a different day (#1366)Reject a
%j(day of year) value that the parsed year does not have, instead of rolling it over into the next year, so “1999366” withdate_formats=["%Y%j"]returnsNonerather than 2000-01-01. A format with no year directive is checked against the yearstrptimedefaults to, 1900, which is not a leap year, so “366” withdate_formats=["%j"]now returnsNonewhere it used to return January 1 (#1370)
Cleanups and internal improvements:
Add CodSpeed benchmarks and a workflow that runs them, so a performance regression such as the quadratic backtracking fixed in 1.4.1 is reported on the pull request that introduces it (#1365)
1.4.2 (2026-08-04)
New features:
Add an
IGNORE_SURROUNDING_TEXTsetting that, when enabled, retries parsing after ignoring the 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)Add a
strategyargument tosearch_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)
Fixes:
Do not read a two-digit number as a year once a later component has been found in year-first date orders, so the day in Japanese dates such as “4月20日” is no longer consumed as the year (#1358)
Parse ISO 8601 dates (those starting with a four-digit year) in month-day order even when an explicit day-first language such as
itorfris given, without needing to setPREFER_LOCALE_DATE_ORDERtoFalse(#1352)Honor
PREFER_DATES_FROMandRELATIVE_BASEwhen parsing with customdate_formatsthat use a two-digit year (%y) (#1342)Honor the
%j(day of year) directive indate_formatsinstead of overwriting the parsed month and day with the current date (#1345)
Improvements:
Update the bundled CLDR locale data to 44.1.0, adding many newly recognized date forms across locales and a standalone hour/duration unit (e.g. Catalan “2 hores”), while keeping previously supported forms parseable (#1343)
Add the Italian expressions “un ora fa” and “un’ora fa”, and skip “alle” so phrases like “oggi alle 11:00” parse (#1049)
Expand Czech date translations with month locative/dative forms (e.g. “v lednu 2023”), the July abbreviation “črv”, and relative expressions such as “za týden”, “za měsíc” and “za rok” (#1172)
Specify the README header content as RST rather than raw HTML (#1360)
1.4.1 (2026-06-15)
Breaking changes:
Remove fastText language detection support: the
fasttextextra is dropped anddetect_languages()now raisesImportError. Migrate to thelangdetectextra, which also unblocksnumpy2.x compatibility (#1315)
Security fixes:
Make digit quantifiers possessive in the relative-date regexes to prevent quadratic backtracking (ReDoS) on long digit runs (#1335)
New features:
Add the
USE_GIVEN_LANGUAGE_ORDERsetting to trylanguagesandlocalesin the order given rather than by frequency (#789)
Fixes:
Preserve explicit signs on individual components when parsing relative dates that combine decades with years, such as “-1 decade +2 years” (#1330)
Fall back to other provided languages in
search_dateswhen the detected language yields no dates (#1331)Parse relative date expressions with spaces between the sign and number, such as “now - 2 hours” and “now + 1 day” (#1327)
Use the parser-relative
nowfor the current month when filling in incomplete dates so the month and day stay consistent (#1332)Fix Norwegian Bokmål (
nb) parsing of relative date expressions such as “3 måneder siden” and “om 2 måneder” (#1334)Parse abbreviated English month expressions such as “1mon ago” and “3mons ago” (#1329)
Preserve surrounding whitespace when removing skip tokens during translation to avoid spurious double spaces (#1324)
Improvements:
Move project metadata and build configuration to
pyproject.toml(#1311)Add alternative Korean date expressions for today, yesterday, tomorrow, and “N months ago/later” (#1289)
Expand Czech date translations with additional inflections, word numbers, decade and century expressions, and clock phrases like “čtvrt na tři” (#1325)
Replace internal
OrderedDictusage with the built-indict(#1328)
1.4.0 (2026-03-26)
Security fixes:
Remove import-time loading of timezone offset data from pickle to prevent unsafe deserialization from packaged data
Replace
eval()use when parsingno_word_spacingwith strict boolean parsing to prevent code execution from locale metadata (#1056)
New features:
Add support for expressions like “N {interval} from now” in English (#1271)
Add support for the
en-USlocale (#1222)
Fixes:
Honor
REQUIRE_PARTSfor ambiguous month-number inputs by retrying with a year-biasedDATE_ORDER(#1298)Fix parsing word-number relative phrases such as “two days later” (#1316)
Allow md5hash to work in FIPS environments (#1267)
Improvements:
Add Bosnian Cyrillic (ijekavica) date translations (#1293)
Add a new browser-based demo to the project documentation (#1306)
Update installation documentation to replace
setup.py installguidance (#1310)Add a project security policy (#1318)
1.3.0 (2026-02-04)
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 theRETURN_TIME_SPAN,DEFAULT_START_OF_WEEKandDEFAULT_DAYS_IN_MONTHsettings in the documentation. (#1284)
Fixes:
Assume the current year if not specified (#1288)
Support expressions like “yesterday +1h” (#1303)
English: Support most 2-letter day-of-the-week names (#1214)
English: Support “in N weeks’ time” (#1283)
Finnish: Support dates with “klo” (#1301)
Russian: Support compound ordinals (#1280)
Cleanups and internal improvements:
Fixed year expectation issues in tests. (#1294)
1.2.2 (2025-06-26)
Fixes:
Handle the Russian preposition “с” (#1261)
Fix weekday search (#1274)
Improvements:
Add Python 3.14 support (#1273)
Cache timezone offsets to improve import time (#1250)
1.2.1 (2025-02-05)
Fixes:
Fix PytzUsageWarning (#1109)
Fix date_parser with prefer_month_of_year wrong results (#1224)
Fix skipped day when UTC and tz are different days (#1183)
Improvements:
Avoid repeated loop over timezones (#1238)
Proofread README.rst (#1234)
Check for derived types for configuration (#1223)
Parse some abbreviated strings as relative dates (#1219)
Migrate from hijri-converter to hijridate (#1211)
Fixed ClusterFuzz build error by adding dateparser.data as a binary (#1208)
Fix an issue detected by OSSFuzz (#1203)
Support two-digit years in non-Gregorian calendars (#1187)
Refactored CI to run extras separately and test minimum versions of dependencies, replaced flake8 with ruff, fixed tests (#1248)
Set minimum versions for dependencies (#1248)
Limited
numpyto 1.x when installingdateparser[fasttext](#1248)
1.2.0 (2023-11-17)
New features:
New
PREFER_MONTH_OF_YEARsetting (#1146)
Fixes:
Absolute years in Russian are no longer being treated as a number of years in the past (#1129)
Cleanups and internal improvements:
Removed the use of
datetime.utcnow, deprecated on Python 3.12 (#1179)Applied Black formatting to the code base (#1158)
Initial integration with OSSFuzz (#1198)
Extended test cases (#1191)
1.1.8 (2023-03-22)
Improvements:
Improved date parsing for Chinese (#1148)
Improved date parsing for Czech (#1151)
Reorder language by popularity (#1152)
Fix leak of memory in cache (#1140)
Add support for “d units later” (#1154)
Move modification in CLDR data to yaml (#1153)
Add support to use timezone via settings to get PREFER_DATES_FROM result (#1155)
1.1.7 (2023-02-02)
Improvements:
Add an “ago” synonym for Arabic (#1128)
Improved date parsing for Czech (#1131)
Improved date parsing for Indonesian (#1134)
1.1.6 (2023-01-12)
Improvements:
Fix the bug where Monday is parsed as a month (#1121)
Prevent ReDoS in Spanish sentence splitting regex (#1084)
1.1.5 (2022-12-29)
Improvements:
Parse short versions of day, month, and year (#1103)
Add a test for “in 1d” (#1104)
Update languages_info (#1107)
Add a workaround for zipimporter not having exec_module before Python 3.10 (#1069)
Stabilize tests at midnight (#1111)
Add a test case for French (#1110)
Cleanups:
Remove the requirements-build file (#1113)
1.1.4 (2022-11-21)
Improvements:
Improved support for languages such as Slovak, Indonesian, Hindi, German and Japanese (#1064, #1094, #986, #1071, #1068)
Recursively create a model home (#996)
Replace regex sub with simple string replace (#1095)
Add Python 3.10, 3.11 support (#1096)
Drop support for Python 3.5, 3.6 versions (#1097)
1.1.3 (2022-11-03)
New features:
Add support for fractional units (#876)
Improvements:
Fix the returned datetime skipping a day with time+timezone input and PREFER_DATES_FROM = ‘future’ (#1002)
Fix input translatation breaking keep_formatting (#720)
English: support “till date” (#1005)
English: support “after” and “before” in relative dates (#1008)
Cleanups:
Reorganize internal data (#1090)
CI updates (#1088)
1.1.2 (2022-10-20)
Improvements:
Added support for negative timestamp (#1060)
Fixed PytzUsageWarning for Python versions >= 3.6 (#1062)
Added support for dates with dots and spaces (#1028)
Improved support for Ukrainian, Croatian and Russian (#1072, #1074, #1079, #1082, #1073, #1083)
Added support for parsing Unix timestamps consistently regardless of timezones (#954)
Improved tests (#1086)
1.1.1 (2022-03-17)
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).
1.1.0 (2021-10-04)
New features:
Support language detection based on
langdetect,fastText, or a custom implementation (see #932)Add support for ‘by <time>’ (see #839)
Sort default language list by internet usage (see #805)
Improvements:
Improved support of Chinese (#910), Czech (#977)
Improvements in
search_dates(see #953)Make order of previous locales deterministic (see #851)
Fix parsing with trailing space (see #841)
Consider
RETURN_TIME_AS_PERIODfor timestamp times (see #922)Exclude failing regex version (see #974)
Ongoing work multithreading support (see #881, #885)
Add demo URL (see #883)
QA:
Migrate pipelines from Travis CI to Github Actions (see #859, #879, #884, #886, #911, #966)
Use versioned CLDR data (see #825)
Add a script to update table of supported languages and locales (see #601)
Sort ‘skip’ keys in yaml files (see #844)
Improve test coverage (see #827)
Code cleanup (see #888, #907, #951, #958, #957)
1.0.0 (2020-10-29)
Breaking changes:
Drop support for Python 2.7 and pypy (see #727, #744, #748, #749, #754, #755, #758, #761, #763, #764, #777 and #783)
Now
DateDataParser.get_date_data()returns aDateDataobject instead of adict(see #778).From now wrong
settingsare not silenced and raiseSettingValidationError(see #797)Now
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)Remove the
'base-formats'parser (see #721)Extract the
'no-spaces-time'parser from the'absolute-time'parser and make it an optional parser (see #786)Remove
numeral_translation_data(see #782)Remove the undocumented
SKIP_TOKENS_PARSERandFUZZYsettings (see #728, #794)Remove support for using strings in
date_formats(see #726)The undocumented
ExactLanguageSearchclass has been moved to the private scope and some internal methods have changed (see #778)Changes in
dateparser.utils:normalize_unicode()doesn’t acceptbytesas input andconvert_to_unicodehas been deprecated (see #749)
New features:
Add Python 3.9 support (see #732, #823)
Detect hours separated with a period/dot (see #741)
Add support for “decade” (see #762)
Add support for the hijri calendar in Python ≥ 3.6 (see #718)
Improvements:
New logo! (see #719)
Improve the README and docs (see #779, #722)
Fix the “calendars” extra (see #740)
Fix leap years when
PREFER_DATES_FROMis set (see #738)Fix
STRICT_PARSINGsetting inno-spaces-timeparser (see #715)Consider
RETURN_AS_TIME_PERIODsetting forrelative-timeparser (see #807)Parse the 24hr time format with meridian info (see #634)
Other small improvements (see #698, #709, #710, #712, #730, #731, #735, #739, #784, #788, #795 and #801)
0.7.6 (2020-06-12)
Improvements:
Rename
scriptstodateparser_scriptsto avoid name collisions with modules from other packages or projects (see #707)
0.7.5 (2020-06-10)
New features:
Add Python 3.8 support (see #664)
Implement a
REQUIRE_PARTSsetting (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
OverflowErrorerrors and explicitly avoid to raiseValueErrorwhen 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'inPREFER_DATES_FROM(see #629)Other small improvements (see #667, #675, #511, #626, #512, #509, #696, #702 and #699)
0.7.4 (2020-03-06)
New features:
Extended Norwegian support (see #598)
Implement a
PARSERSsetting (see #603)
Improvements:
Add support for
PREFER_DATES_FROMin relative/freshness parser (see #414)Add support for
PREFER_DAY_OF_MONTHin 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)
0.7.3 (2020-03-06)
Broken version
0.7.2 (2019-09-17)
Features:
Extended Czech support
Added
timeto valid periodsAdded timezone information to dates found with
search_dates()Support strings as date formats
Improvements:
Fixed Collections ABCs depreciation warning
Fixed dates with trailing colons not being parsed
Fixed date format override on any settings change
Fixed parsing current weekday as past date, regardless of settings
Added UTC -2:30 as a valid offset
Added Python 3.7 to supported versions, dropped support for Python 3.3 and 3.4
Moved to importlib from imp where possible
Improved support for Catalan
Documentation improvements
0.7.1 (2019-02-12)
Features/news:
Added detected language to return value of
search_dates()Performance improvements
Refreshed versions of dependencies
Improvements:
Fixed unpickleable
DateTimeobjects with timezonesFixed regex pattern to avoid new behaviour of re.split in Python 3.7
Fixed an exception thrown when parsing colons
Fixed tests failing on days with number greater than 30
Fixed
ZeroDivisionErrorexceptions
0.7.0 (2018-02-08)
Features added during Google Summer of Code 2017:
Harvesting language data from Unicode CLDR database (https://github.com/unicode-cldr/cldr-json), which includes over 200 locales (#321) - authored by Sarthak Maddan. See full currently supported locale list in README.
Extracting dates from longer strings of text (#324) - authored by Elena Zakharova. Special thanks for their awesome contributions!
New features:
Added (independently from CLDR) Georgian (#308) and Swedish (#305)
Improvements:
Improved support of Chinese (#359), Thai (#345), French (#301, #304), Russian (#302)
Removed ruamel.yaml from dependencies (#374). This should reduce the number of installation issues and improve performance as the result of moving away from YAML as basic data storage format. Note that YAML is still used as format for support language files.
Improved performance through using pre-compiling frequent regexes and lazy loading of data (#293, #294, #295, #315)
Extended tests (#316, #317, #318, #323)
Updated nose_parameterized to its current package, parameterized (#381)
Planned for next release:
Full language and locale names
Performance and stability improvements
Documentation improvements
0.6.0 (2017-03-13)
New features:
Consistent parsing in terms of true python representation of date string. See #281
Added support for Bangla, Bulgarian and Hindi languages.
Improvements:
Major bug fixes related to parser and system’s locale. See #277, #282
Type check for timezone arguments in settings. see #267
Pinned dependencies’ versions in requirements. See #265
Improved support for cn, es, dutch languages. See #274, #272, #285
Packaging:
Make calendars extras to be used at the time of installation if need to use calendars feature.
0.5.1 (2016-12-18)
New features:
Added support for Hebrew
Improvements:
Safer loading of YAML. See #251
Better timezone parsing for freshness dates. See #256
Pinned dependencies’ versions in requirements. See #265
Improved support for zh, fi languages. See #249, #250, #248, #244
0.5.0 (2016-09-26)
New features:
DateDataParsernow also returns detected language in the result dictionary.Explicit and lucid timezone conversion for a given datestring using
TIMEZONE,TO_TIMEZONEsettings.Added Hungarian language.
Added setting,
STRICT_PARSINGto ignore incomplete dates.
Improvements:
Fixed quite a few parser bugs reported in issues #219, #222, #207, #224.
Improved support for chinese language.
Consistent interface for both Jalali and Hijri parsers.
0.4.0 (2016-06-17)
New features:
Support for Language based date order preference while parsing ambiguous dates.
Support for parsing dates with no spaces in between components.
Support for custom date order preference using
settings.Support for parsing generic relative dates in future.e.g. “tomorrow”, “in two weeks”, etc.
Added
RELATIVE_BASEsettings to set date context to any datetime in past or future.Replaced
dateutil.parser.parsewith dateparser’s own parser.
Improvements:
Added simplifications for “12 noon” and “12 midnight”.
Fixed several bugs
Replaced PyYAML library by its active fork ruamel.yaml which also fixed the issues with installation on windows using python35.
More predictable
date_formatshandling.
0.3.5 (2016-04-27)
New features:
Danish language support.
Japanese language support.
Support for parsing date strings with accents.
Improvements:
Transformed languages.yaml into base file and separate files for each language.
Fixed vietnamese language simplifications.
No more version restrictions for python-dateutil.
Timezone parsing improvements.
Fixed test environments.
Cleaned language codes. Now we strictly follow codes as in ISO 639-1.
Improved chinese dates parsing.
0.3.4 (2016-03-03)
Improvements:
Fixed broken version 0.3.3 by excluding latest python-dateutil version.
0.3.3 (2016-02-29)
New features:
Finnish language support.
Improvements:
Faster parsing with switching to regex module.
RETURN_AS_TIMEZONE_AWAREsetting to return tz aware date object.Fixed conflicts with month/weekday names similarity across languages.
0.3.2 (2016-01-25)
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()inFreshnessDateDataParser.Added month names and week day names abbreviations to several languages.
More simplifications for Russian and Ukrainian languages.
Fixed problem with parsing time component of date strings with several kinds of apostrophes.
0.3.1 (2015-10-28)
New features:
Support for Jalali Calendar.
Belarusian language support.
Indonesian language support.
Improvements:
Extended support for Russian and Polish.
Fixed bug with time zone recognition.
Fixed bug with incorrect translation of “second” for Portuguese.
0.3.0 (2015-07-29)
New features:
Compatibility with Python 3 and PyPy.
Improvements:
languages.yaml data cleaned up to make it human-readable.
Improved Spanish date parsing.
0.2.1 (2015-07-13)
Support for generic parsing of dates with UTC offset.
Support for Tagalog/Filipino dates.
Improved support for French and Spanish dates.
0.2.0 (2015-06-17)
Easy to use
parsefunctionLanguages definitions using YAML.
Using translation based approach for parsing non-english languages. Previously,
dateutil.parserinfowas 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
pytztimezones.Fixed building and packaging issues.
0.1.0 (2014-11-24)
First release on PyPI.