All Projects → orsinium-archive → rutimeparser

orsinium-archive / rutimeparser

Licence: LGPL-3.0 license
Recognize date and time in russian text and return datetime.datetime.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to rutimeparser

Tail.datetime
A lightweight, translat- and configurable Open Source DateTime Picker, written in pure vanilla JavaScript!
Stars: ✭ 139 (+717.65%)
Mutual labels:  time, datetime, date
lit-date
Light-weight, faster datetime formatter for modern browsers.
Stars: ✭ 33 (+94.12%)
Mutual labels:  time, datetime, date
Delorean
Delorean: Time Travel Made Easy
Stars: ✭ 1,793 (+10447.06%)
Mutual labels:  time, datetime, date
Dateparse
GoLang Parse many date strings without knowing format in advance.
Stars: ✭ 1,365 (+7929.41%)
Mutual labels:  time, datetime, date
Jiffy
Jiffy is a Flutter (Android, IOS and Web) date time package inspired by momentjs for parsing, manipulating, querying and formatting dates
Stars: ✭ 238 (+1300%)
Mutual labels:  time, datetime, date
Time Stamp
Get a formatted timestamp. Used in gulp, assemble, generate, and many others.
Stars: ✭ 104 (+511.76%)
Mutual labels:  time, datetime, date
Gostradamus
Gostradamus: Better DateTimes for Go 🕰️
Stars: ✭ 148 (+770.59%)
Mutual labels:  time, datetime, date
Carbon
A simple PHP API extension for DateTime
Stars: ✭ 75 (+341.18%)
Mutual labels:  time, datetime, date
Dpicker
A framework-agnostic minimal date picker
Stars: ✭ 187 (+1000%)
Mutual labels:  time, datetime, date
Date
A date and time library based on the C++11/14/17 <chrono> header
Stars: ✭ 2,389 (+13952.94%)
Mutual labels:  time, datetime, date
date-extractor
Extract dates from text
Stars: ✭ 58 (+241.18%)
Mutual labels:  time, datetime, date
iso8601
A fast ISO8601 date parser for Go
Stars: ✭ 122 (+617.65%)
Mutual labels:  time, datetime, date
Luatz
Time, Date and Timezone library for lua
Stars: ✭ 92 (+441.18%)
Mutual labels:  time, datetime, date
Calendar
📅 PHP Date & Time library that solves common problems in object oriented, immutable way.
Stars: ✭ 113 (+564.71%)
Mutual labels:  time, datetime, date
Graphql Java Datetime
GraphQL ISO Date is a set of RFC 3339 compliant date/time scalar types to be used with graphql-java.
Stars: ✭ 89 (+423.53%)
Mutual labels:  time, datetime, date
Date Picker
📅 Custom responsive date picker widget for Android, written in Kotlin.
Stars: ✭ 146 (+758.82%)
Mutual labels:  time, datetime, date
When
A natural language date/time parser with pluggable rules
Stars: ✭ 1,113 (+6447.06%)
Mutual labels:  time, datetime, date
Iso8601
Ruby parser to work with ISO8601 dateTimes and durations — http://en.wikipedia.org/wiki/ISO_8601
Stars: ✭ 70 (+311.76%)
Mutual labels:  time, datetime, date
Time
Building a better date/time library for Swift
Stars: ✭ 1,983 (+11564.71%)
Mutual labels:  time, datetime, date
ptera
Ptera is DateTime library for Deno
Stars: ✭ 62 (+264.71%)
Mutual labels:  time, datetime, date

RuTimeParser

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

Установка

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 число следующего месяца.

Больше примеров в tests.py

API reference

Параметры rutimeparser.parse:

  • 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

  • Перейти на pymorphy
  • Добавить поддержку AM/PM (например, "в два часа дня")
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].