Python parse russian date

dateparser – python parser for human readable dates¶

dateparser provides modules to easily parse localized dates in almost any string formats commonly found on web pages.

Features¶

  • Generic parsing of dates in English, Spanish, Dutch, Russian and several other langauges and formats.
  • Generic parsing of relative dates like: ‘1 min ago’ , ‘2 weeks ago’ , ‘3 months, 1 week and 1 day ago’ .
  • Generic parsing of dates with time zones abbreviations like: ‘August 14, 2015 EST’ , ‘July 4, 2013 PST’ .
  • Extensive test coverage.

Usage¶

The most straightforward way is to use the dateparser.parse() function, that wraps around most of the functionality in the module.

dateparser. parse ( date_string, date_formats=None, languages=None ) [source] ¶

Parse date and time from given date string.

  • 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.

Returns a datetime.datetime if successful, else returns None

Читайте также:  Kotlin the expression is unused

ValueError — Unknown Language

>>> import dateparser >>> dateparser.parse('12/12/12') datetime.datetime(2012, 12, 12, 0, 0) >>> dateparser.parse(u'Fri, 12 Dec 2014 10:55:50') datetime.datetime(2014, 12, 12, 10, 55, 50) >>> dateparser.parse(u'Martes 21 de Octubre de 2014') # Spanish (Tuesday 21 October 2014) datetime.datetime(2014, 10, 21, 0, 0) >>> dateparser.parse(u'Le 11 Décembre 2014 à 09:00') # French (11 December 2014 at 09:00) datetime.datetime(2014, 12, 11, 9, 0) >>> dateparser.parse(u'13 января 2015 г. в 13:34') # Russian (13 January 2015 at 13:34) datetime.datetime(2015, 1, 13, 13, 34) >>> dateparser.parse(u'1 เดือนตุลาคม 2005, 1:00 AM') # Thai (1 October 2005, 1:00 AM) datetime.datetime(2005, 10, 1, 1, 0) 

This will try to parse a date from the given string, attempting to detect the language each time.

You can specify the language(s), if known, using languages argument. In this case, given languages are used and language detection is skipped:

>>> dateparser.parse('2015, Ago 15, 1:08 pm', languages=['pt', 'es']) datetime.datetime(2015, 8, 15, 13, 8) 

If you know the possible formats that the date will be, you can use the date_formats argument:

>>> dateparser.parse(u'22 Décembre 2010', date_formats=['%d %B %Y']) datetime.datetime(2010, 12, 22, 0, 0) 

Relative Dates¶

>>> parse('1 hour ago') datetime.datetime(2015, 5, 31, 23, 0) >>> parse(u'Il ya 2 heures') # French (2 hours ago) datetime.datetime(2015, 5, 31, 22, 0) >>> parse(u'1 anno 2 mesi') # Italian (1 year 2 months) datetime.datetime(2014, 4, 1, 0, 0) >>> parse(u'yaklaşık 23 saat önce') # Turkish (23 hours ago) datetime.datetime(2015, 5, 31, 1, 0) >>> parse(u'Hace una semana') # Spanish (a week ago) datetime.datetime(2015, 5, 25, 0, 0) >>> parse(u'2小时前') # Chinese (2 hours ago) datetime.datetime(2015, 5, 31, 22, 0) 

Testing above code might return different values for you depending on your environment’s current date and time.

Dependencies¶

dateparser translates non-english dates to English and uses dateutil module ‘parser’ to parse the translated date.

Also, it requires PyYAML for its language detection module to work.

Limitations¶

dateparser at this point does not support generic parsing of dates with fixed UTC offsets. This restricts its ability to reliably parse time zone aware dates since the use of abbreviated time zones as a sole designator of time zones is not recommended.

Using DateDataParser¶

dateparser.parse() uses a default parser which tries to detect language every time it is called and is not the most efficient way while parsing dates from the same source.

dateparser.date.DateDataParser provides an alternate and efficient way to control language detection behavior.

The instance of dateparser.date.DateDataParser reduces the number of applicable languages, until only one or no language is left. It assumes the previously detected language for all the next dates and does not try to execute the language detection again after a language is discarded.

This class wraps around the core dateparser functionality, and by default assumes that all of the dates fed to it are in the same language.

class dateparser.date. DateDataParser ( languages=None, allow_redetect_language=False ) [source] ¶

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

  • 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.

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

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

  • 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.

a dict mapping keys to datetime.datetime object and period. For example:

ValueError — Unknown Language

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

Period represent 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′)

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′)
>>> from dateparser.date import DateDataParser >>> ddp = DateDataParser() >>> ddp.get_date_data(u’Martes 21 de Octubre de 2014′) # Spanish >>> ddp.get_date_data(u’13 Septiembre, 2014′) # Spanish

It fails to parse English dates in the example below, because Spanish was detected and stored with the ddp instance:

>>> ddp.get_date_data('11 August 2012') 

dateparser.date.DateDataParser can also be initialized with known languages:

>>> ddp = DateDataParser(languages=[‘de’, ‘nl’]) >>> ddp.get_date_data(u’vr jan 24, 2014 12:49′) >>> ddp.get_date_data(u’18.10.14 um 22:56 Uhr’)

© Copyright 2014, Scrapinghub.

Versions latest stable master v0.2.0 v0.1.0 Downloads On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Источник

rutimeparser 1.1.1

Данный модуль содержит базовый класс и упрощающие работу с ним функции для извлечения даты и времени из текста на русском языке.

Установка

sudo pip3 install rutimeparser

Использование

Примеры ниже приведены для 2 апреля 2017 года.

Извлечение даты и времени:

Извлечение текста, не относящегося к дате и времени:

Неявные ситуации

  • утром — в 09:00
  • днём — в 15:00
  • вечером — в 21:00
  • ночью — в 03:00
  • на следующей неделе — на следующей неделе в понедельник.
  • через неделю — ровно через 7 суток.
  • через неделю утром — через 7 дней утром.
  • в следующем месяце — 1 число следующего месяца.

API reference

  • words (str, list, tuple) – Строка с текстом или список слов. Параметр является необязательным, т.к. может быть передан непосредственно в метод parse .
  • tz (str) – Название часового пояса. Если не указано, возвращается наивное время.
  • now (datetime.datetime) – От какого момента считать текущее время
  • allowed_results (list, tuple) – Список объектов, которые могут быть возвращены методом parse . Возможные значения – datetime.datetime, datetime.date, datetime.time, None.
  • default_time (datetime.time) – Время по умолчанию. Используется только в том случае, если из текста удалось получить только date, но необходимо вернуть datetime. По умолчанию 09:00.
  • default_datetime (datetime.datetime) – Дата и время по умолчанию. Возвращается методом parse , если в тексте не удалось найти значение, подходящее под allowed_results . По умолчанию равен значению параметра now .

TODO

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Recognize date and time in russian text and return datetime.datetime.

License

orsinium-archive/rutimeparser

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Данный модуль содержит базовый класс и упрощающие работу с ним функции для извлечения даты и времени из текста на русском языке.

sudo pip3 install rutimeparser

Примеры ниже приведены для 2 апреля 2017 года.

Извлечение даты и времени:

>>> from rutimeparser import parse >>> parse('завтра') datetime.date(2017, 4, 3) >>> parse('завтра утром') datetime.datetime(2017, 4, 3, 9, 0) >>> parse('Напомни мне завтра утром составить список дел.') datetime.datetime(2017, 4, 3, 9, 0)

Извлечение текста, не относящегося к дате и времени:

>>> from rutimeparser import get_clear_text, get_last_clear_text >>> get_clear_text('Напомни мне завтра утром составить список дел.') 'напомни мне составить список дел' >>> get_last_clear_text('Напомни мне завтра утром составить список дел.') 'составить список дел'
  • утром — в 09:00
  • днём — в 15:00
  • вечером — в 21:00
  • ночью — в 03:00
  • на следующей неделе — на следующей неделе в понедельник.
  • через неделю — ровно через 7 суток.
  • через неделю утром — через 7 дней утром.
  • в следующем месяце — 1 число следующего месяца.
  • words (str, list, tuple) — Строка с текстом или список слов. Параметр является необязательным, т.к. может быть передан непосредственно в метод parse .
  • tz (str) — Название часового пояса. Если не указано, возвращается наивное время.
  • now (datetime.datetime) — От какого момента считать текущее время
  • allowed_results (list, tuple) — Список объектов, которые могут быть возвращены методом parse . Возможные значения — datetime.datetime, datetime.date, datetime.time, None.
  • default_time (datetime.time) — Время по умолчанию. Используется только в том случае, если из текста удалось получить только date, но необходимо вернуть datetime. По умолчанию 09:00.
  • default_datetime (datetime.datetime) — Дата и время по умолчанию. Возвращается методом parse , если в тексте не удалось найти значение, подходящее под allowed_results . По умолчанию равен значению параметра now .

About

Recognize date and time in russian text and return datetime.datetime.

Источник

Оцените статью