Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ovos-date-parser

ovos-date-parser is a comprehensive library for multilingual date and time parsing, extraction, and formatting, designed to handle a range of human-readable date, time, and duration expressions.

Features

  • Date and Time Extraction: Extract specific dates and times from natural language phrases in various languages.
  • Duration Parsing: Parse phrases that indicate a span of time, such as "two hours and fifteen minutes."
  • Friendly Time Formatting: Format time for human-friendly output, supporting both 12-hour and 24-hour formats.
  • Relative Time Descriptions: Generate relative descriptions (e.g., "tomorrow," "in three days") for given dates.
  • Multilingual Support: Includes extraction and formatting methods for multiple languages, such as English, Spanish, French, German, and more.

Installation

pip install ovos-date-parser

Languages Supported

ovos-date-parser supports a wide array of languages, each with its own set of methods for handling natural language time expressions.

  • โœ… - supported
  • โŒ - not supported
  • ๐Ÿšง - imperfect placeholder, usually a language agnostic implementation or external library

Parse

Language extract_duration extract_datetime
az โœ… โœ…
ca โœ… โœ…
cs โœ… โœ…
da โœ… โœ…
de โœ… โœ…
en โœ… โœ…
es โœ… โœ…
gl โœ… ๐Ÿšง
eu โŒ โœ…
fa โœ… โœ…
fr โŒ โœ…
hu โŒ ๐Ÿšง
it โŒ โœ…
nl โœ… โœ…
pl โœ… โœ…
pt โœ… โœ…
ro โœ… โœ…
ru โœ… โœ…
sv โœ… โœ…
uk โœ… โœ…

๐Ÿ’ก If a language is not implemented for extract_datetime then dateparser will be used as a fallback

Format

Language nice_date
nice_date_time
nice_day
nice_weekday
nice_month
nice_year
get_date_strings
nice_time nice_relative_time nice_duration
az โœ… โœ… ๐Ÿšง โœ…
ca โœ… โœ… ๐Ÿšง โœ…
cs โœ… โœ… ๐Ÿšง โœ…
da โœ… โœ… ๐Ÿšง โœ…
de โœ… โœ… ๐Ÿšง โœ…
en โœ… โœ… ๐Ÿšง โœ…
es โœ… โœ… ๐Ÿšง โœ…
gl โœ… โœ… ๐Ÿšง โœ…
eu โœ… โœ… โœ… โœ…
fa โœ… โœ… ๐Ÿšง โœ…
fr โœ… โœ… ๐Ÿšง โœ…
hu โœ… โœ… ๐Ÿšง โœ…
it โœ… โœ… ๐Ÿšง โœ…
nl โœ… โœ… ๐Ÿšง โœ…
pl โœ… โœ… ๐Ÿšง โœ…
pt โœ… โœ… ๐Ÿšง โœ…
ro โœ… โœ… ๐Ÿšง โœ…
ru โœ… โœ… ๐Ÿšง โœ…
sv โœ… โœ… ๐Ÿšง โœ…
sl โœ… โŒ ๐Ÿšง โœ…
uk โœ… โœ… ๐Ÿšง โœ…

Usage

Date and Time Extraction

Extract specific dates and times from a phrase. This function identifies date-related terms in natural language and returns both the datetime object and any remaining text.

from ovos_date_parser import extract_datetime

result = extract_datetime("Meet me next Friday at 3pm", lang="en")
print(result)  # (datetime object, "at 3pm")

Duration Extraction

Identify duration phrases in text and convert them into a timedelta object. This can parse common human-friendly duration expressions like "30 minutes" or "two and a half hours."

from ovos_date_parser import extract_duration

duration, remainder = extract_duration("It will take about 2 hours and 30 minutes", lang="en")
print(duration)  # timedelta object
print(remainder)  # "about"

Formatting Time

Generate a natural-sounding time format suitable for voice or display in different languages, allowing customization for speech or written text.

from ovos_date_parser import nice_time
from datetime import datetime

dt = datetime.now()
formatted_time = nice_time(dt, lang="en", speech=True, use_24hour=False)
print(formatted_time)  # "three o'clock"

Relative Time Descriptions

Create relative phrases for describing dates and times in relation to the current moment or a reference datetime.

from ovos_date_parser import nice_relative_time
from datetime import datetime, timedelta

relative_time = nice_relative_time(datetime.now() + timedelta(days=1), datetime.now(), lang="en")
print(relative_time)  # "tomorrow"

Documentation

Related Projects

License

This project is licensed under the Apache 2.0 License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos_date_parser-0.17.0a1.tar.gz (200.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_date_parser-0.17.0a1-py3-none-any.whl (227.3 kB view details)

Uploaded Python 3

File details

Details for the file ovos_date_parser-0.17.0a1.tar.gz.

File metadata

  • Download URL: ovos_date_parser-0.17.0a1.tar.gz
  • Upload date:
  • Size: 200.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for ovos_date_parser-0.17.0a1.tar.gz
Algorithm Hash digest
SHA256 e90c280f5d73c9c65e109786152b876a625da2ede1e3bc906ae5b8bcffb48698
MD5 04ba8b9b50b05131bac47835eaed0e4f
BLAKE2b-256 b3cdd6b41b84e90c251eee857e51244e245fc1e310ab53c1a0aafb1fbaa00d67

See more details on using hashes here.

File details

Details for the file ovos_date_parser-0.17.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_date_parser-0.17.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e394fd6ce5d352c2ab7d6ea9d9b9ec59b8a319b89bde819c153410e1e7e1c28
MD5 0f6356c5bdc9727b57f1b421b43443e3
BLAKE2b-256 6c9329743400bc0e7657901dc79cb839d7252c020b987a8b49730b81798eaf91

See more details on using hashes here.

Release history Release notifications | RSS feed

0.29.0

2 files

This release

0.17.0a1 This release

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page