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 parselanguage- 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”