bookdata/parsing/
dates.rs1use chrono::prelude::*;
2use chrono::ParseResult;
3use log::*;
4
5const GR_DATE_FMT: &'static str = "%A %B %d %H:%M:%S %z %Y";
9
10pub fn parse_gr_date(s: &str) -> ParseResult<NaiveDateTime> {
12 let date = DateTime::parse_from_str(s, GR_DATE_FMT)?.naive_utc();
13 Ok(date)
14}
15
16pub fn check_ts(
18 context: &'static str,
19 cutoff: i32,
20) -> impl Fn(NaiveDateTime) -> Option<NaiveDateTime> {
21 move |date| {
22 if date.year() < cutoff {
23 warn!("{} is ancient: {}", context, date);
24 None
25 } else {
26 Some(date)
27 }
28 }
29}