Skip to main content

parse

Function parse 

Source
pub fn parse(input: &str, language: Language) -> Result<TimeExpression>
Expand description

Parse a natural language time expression.

This is the main entry point for parsing time expressions. It takes a string input and a language, and returns a parsed TimeExpression.

§Arguments

  • input - The natural language time expression to parse
  • language - The language to use for parsing

§Returns

Returns Ok(TimeExpression) if parsing succeeds, or Err(TempsError) if the input cannot be parsed.

§Examples

use temps_core::{parse, Language, TimeExpression};

// Parse English expressions
let expr = parse("in 5 minutes", Language::English).unwrap();
let expr = parse("tomorrow at 3:30 pm", Language::English).unwrap();
let expr = parse("next Monday", Language::English).unwrap();

// Parse German expressions
let expr = parse("in 5 Minuten", Language::German).unwrap();
let expr = parse("morgen um 15:30", Language::German).unwrap();
let expr = parse("nächsten Montag", Language::German).unwrap();

// Parse ISO datetime (works in any language)
let expr = parse("2024-01-15T14:30:00Z", Language::English).unwrap();

§Supported Formats

§Relative Time

  • “in 5 minutes”, “5 minutes ago”
  • “in 2 hours”, “an hour ago”
  • “in 3 days”, “2 days ago”
  • “in a week”, “2 weeks ago”
  • “in 6 months”, “a month ago”
  • “in 2 years”, “a year ago”

§Day References

  • “today”, “yesterday”, “tomorrow”
  • “Monday”, “Tuesday”, etc.
  • “next Monday”, “last Friday”

§Times

  • “3:30 pm”, “10:15 am”
  • “14:30”, “09:00”

§Dates

  • “15/03/2024”, “31-12-2025”

§Combined

  • “tomorrow at 3:30 pm”
  • “next Monday at 9:00 am”

§ISO Format

  • “2024-01-15T14:30:00Z”
  • “2024-01-15T14:30:00+02:00”
  • “2024-01-15T14:30:00.123Z”