#date #time #datetime #parser #parse

qsv-dateparser

Parse dates in string formats that are commonly used. Optimized for qsv.

16 releases (8 breaking)

0.10.0 Aug 1, 2023
0.9.0 Jun 7, 2023
0.8.2 May 30, 2023
0.7.0 Mar 25, 2023
0.4.2 May 31, 2022

#63 in Date and time

Download history 302/week @ 2023-07-26 217/week @ 2023-08-02 233/week @ 2023-08-09 294/week @ 2023-08-16 377/week @ 2023-08-23 191/week @ 2023-08-30 321/week @ 2023-09-06 251/week @ 2023-09-13 256/week @ 2023-09-20 353/week @ 2023-09-27 252/week @ 2023-10-04 226/week @ 2023-10-11 172/week @ 2023-10-18 529/week @ 2023-10-25 330/week @ 2023-11-01 240/week @ 2023-11-08

1,286 downloads per month
Used in 3 crates (2 directly)

MIT license

71KB
1.5K SLoC

qsv-dateparser

A rust library for parsing date strings in commonly used formats. Parsed date will be returned as chrono's DateTime<Utc>.

This is a fork of Rollie Ma's dateparser, specifically published to support qsv. It supports a subset of date formats supported by dateparser, skipping more obscure formats, primarily for performance. It also adds support for parsing dates in DMY format, with the parse_with_preference function.

It will also be the foundation for replacing the chrono crate, with its long-standing security advisory.

Accepted date formats

// unix timestamp
"1511648546",
"1620021848429",
"1620024872717915000",
"0",
"-770172300",
"1671673426.123456789",
// rfc3339
"2021-05-01T01:17:02.604456Z",
"2017-11-25T22:34:50Z",
// rfc2822
"Wed, 02 Jun 2021 06:31:39 GMT",
// yyyy-mm-dd hh:mm:ss
"2014-04-26 05:24:37 PM",
"2021-04-30 21:14",
"2021-04-30 21:14:10",
"2021-04-30 21:14:10.052282",
"2014-04-26 17:24:37.123",
"2014-04-26 17:24:37.3186369",
"2012-08-03 18:31:59.257000000",
// yyyy-mm-dd hh:mm:ss z
"2017-11-25 13:31:15 PST",
"2017-11-25 13:31 PST",
"2014-12-16 06:20:00 UTC",
"2014-12-16 06:20:00 GMT",
"2014-04-26 13:13:43 +0800",
"2014-04-26 13:13:44 +09:00",
"2012-08-03 18:31:59.257000000 +0000",
"2015-09-30 18:48:56.35272715 UTC",
// yyyy-mm-dd
"2021-02-21",
// yyyy-mm-dd z
"2021-02-21 PST",
"2021-02-21 UTC",
"2020-07-20+08:00",
// Mon dd, yyyy, hh:mm:ss
"May 8, 2009 5:57:51 PM",
"September 17, 2012 10:09am",
"September 17, 2012, 10:10:09",
// Mon dd, yyyy hh:mm:ss z
"May 02, 2021 15:51:31 UTC",
"May 02, 2021 15:51 UTC",
"May 26, 2021, 12:49 AM PDT",
"September 17, 2012 at 10:09am PST",
// yyyy-mon-dd
"2021-Feb-21",
// Mon dd, yyyy
"May 25, 2021",
"oct 7, 1970",
"oct 7, 70",
"oct. 7, 1970",
"oct. 7, 70",
"October 7, 1970",
// dd Mon yyyy hh:mm:ss
"12 Feb 2006, 19:17",
"12 Feb 2006 19:17",
"14 May 2019 19:11:40.164",
// dd Mon yyyy
"7 oct 70",
"7 oct 1970",
"03 February 2013",
"1 July 2013",
// mm/dd/yyyy hh:mm:ss
"4/8/2014 22:05",
"04/08/2014 22:05",
"4/8/14 22:05",
"04/2/2014 03:00:51",
"8/8/1965 12:00:00 AM",
"8/8/1965 01:00:01 PM",
"8/8/1965 01:00 PM",
"8/8/1965 1:00 PM",
"8/8/1965 12:00 AM",
"4/02/2014 03:00:51",
"03/19/2012 10:11:59",
"03/19/2012 10:11:59.3186369",
// mm/dd/yyyy
"3/31/2014",
"03/31/2014",
"08/21/71",
"8/1/71",
// yyyy/mm/dd hh:mm:ss
"2014/4/8 22:05",
"2014/04/08 22:05",
"2014/04/2 03:00:51",
"2014/4/02 03:00:51",
"2012/03/19 10:11:59",
"2012/03/19 10:11:59.3186369",
// yyyy/mm/dd
"2014/3/31",
"2014/03/31",
// dd/mm/yyyy
"31/12/2020",
"12/10/2019",
"03/06/2018",
"27/06/68",
// dd/mm/yyyy hh:mm:ss
"4/8/2014 22:05",
"04/08/2014 22:05",
"4/8/14 22:05",
"04/2/2014 03:00:51",
"8/8/1965 12:00:00 AM",
"8/8/1965 01:00:01 PM",
"8/8/1965 01:00 PM",
"31/12/22 15:00"

Dependencies

~4–10MB
~93K SLoC