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(context: &'static str, cutoff: i32) -> impl Fn(NaiveDateTime) -> f32 {
18 move |date| {
19 if date.year() < cutoff {
20 warn!("{} is ancient: {}", context, date);
21 }
22 date.timestamp() as f32
23 }
24}