3 unstable releases

0.1.0 Jul 10, 2023
0.0.2 May 17, 2021
0.0.1 Mar 8, 2016

#488 in Date and time

22 downloads per month
Used in 2 crates (via gedcomx)

MIT license

27KB
686 lines

gedcomx-date-rs

Circle CI

Gedcomx date parsing written with nom in rust. See documentation here.

let date = gedcomx_date::parse("2015-06-26T16:43:23+02:00").unwrap();

Will give you:

GedcomxDate::Simple {
    date: Date {
        year: 2015,
        month: Some(6),
        day: Some(26),
    },
    time: Some(Time {
        hours: 16,
        minutes: Some(43),
        seconds: Some(23),
        tz_offset_hours: Some(2),
        tz_offset_minutes: Some(0),
    }),
};

Usage

Update your Cargo.toml:

[dependencies]
gedcomx_date = "0.0.1"
fn main() {
    let date = gedcomx_date::parse("+1988-03-29T03:19+01");
    print!("{:?}", date);
}

TODO

  • don't cheat on the duration tests
  • validate dates (i.e. 30/02/2016)
  • validate hours (i.e. 24:31)
  • report parsing errors

License

MIT License Copyright (c) 2016 Nicolas Barbotte

Dependencies

~1MB
~19K SLoC