aboutsummaryrefslogtreecommitdiff
path: root/src/fexpr/grammar.lalrpop
diff options
context:
space:
mode:
Diffstat (limited to 'src/fexpr/grammar.lalrpop')
-rw-r--r--src/fexpr/grammar.lalrpop14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/fexpr/grammar.lalrpop b/src/fexpr/grammar.lalrpop
index f193a90..8674b84 100644
--- a/src/fexpr/grammar.lalrpop
+++ b/src/fexpr/grammar.lalrpop
@@ -10,7 +10,7 @@ use evtclib::Boss;
use std::collections::HashSet;
use lalrpop_util::ParseError;
-use chrono::NaiveDateTime;
+use chrono::{DateTime, Local, TimeZone, Utc};
use regex::Regex;
grammar;
@@ -134,23 +134,25 @@ Boss: Boss = {
}),
}
-Date: NaiveDateTime = {
- <l:@L> <d:datetime> =>? NaiveDateTime::parse_from_str(d, "%Y-%m-%d %H:%M:%S")
+Date: DateTime<Utc> = {
+ <l:@L> <d:datetime> =>? Local.datetime_from_str(d, "%Y-%m-%d %H:%M:%S")
.map_err(|error| ParseError::User {
error: FError {
location: l,
data: d.into(),
kind: error.into(),
}
- }),
- <l:@L> <d:date> =>? NaiveDateTime::parse_from_str(&format!("{} 00:00:00", d), "%Y-%m-%d %H:%M:%S")
+ })
+ .map(|d| d.with_timezone(&Utc)),
+ <l:@L> <d:date> =>? Local.datetime_from_str(&format!("{} 00:00:00", d), "%Y-%m-%d %H:%M:%S")
.map_err(|error| ParseError::User {
error: FError {
location: l,
data: d.into(),
kind: error.into(),
}
- }),
+ })
+ .map(|d| d.with_timezone(&Utc)),
}
Comma<T>: HashSet<T> = {