dtparse 2.0.1

A dateutil-compatible timestamp parser for Rust
Documentation
extern crate chrono;
extern crate dtparse;

use chrono::NaiveDate;
use dtparse::parse_info;
use dtparse::Parser;
use dtparse::ParserInfo;
use std::collections::HashMap;

fn main() {
    // In this example, we'll just swap the default "months" parameter
    // with a version in Russian. Lovingly taken from:
    // https://github.com/dateutil/dateutil/blob/99f5770e7c63aa049b28abe465d7f1cc25b63fd2/dateutil/test/test_parser.py#L244

    let mut info = ParserInfo::default();
    info.months = parse_info(vec![
        vec!["янв", "Январь"],
        vec!["фев", "Февраль"],
        vec!["мар", "Март"],
        vec!["апр", "Апрель"],
        vec!["май", "Май"],
        vec!["июн", "Июнь"],
        vec!["июл", "Июль"],
        vec!["авг", "Август"],
        vec!["сен", "Сентябрь"],
        vec!["окт", "Октябрь"],
        vec!["ноя", "Ноябрь"],
        vec!["дек", "Декабрь"],
    ]);

    let p = Parser::new(info);

    assert_eq!(
        p.parse(
            "10 Сентябрь 2015 10:20",
            None,
            None,
            false,
            false,
            None,
            false,
            &HashMap::new()
        )
        .unwrap()
        .0,
        NaiveDate::from_ymd_opt(2015, 9, 10).unwrap().and_hms_opt(10, 20, 0).unwrap()
    );
}