mirror of
https://github.com/uutils/parse_datetime.git
synced 2026-06-10 16:13:15 -07:00
Merge pull request #150 from yuankunzhang/minor-fix
fix: check whether the parsed time contains timezone
This commit is contained in:
+16
-1
@@ -258,10 +258,18 @@ pub fn parse(input: &mut &str) -> ModalResult<Vec<Item>> {
|
||||
if time_seen {
|
||||
return Err(expect_error(input, "time cannot appear more than once"));
|
||||
}
|
||||
time_seen = true;
|
||||
|
||||
if t.offset.is_some() {
|
||||
if tz_seen {
|
||||
return Err(expect_error(
|
||||
input,
|
||||
"timezone cannot appear more than once",
|
||||
));
|
||||
}
|
||||
tz_seen = true;
|
||||
}
|
||||
|
||||
time_seen = true;
|
||||
}
|
||||
Item::Year(_) => {
|
||||
if year_seen {
|
||||
@@ -591,6 +599,13 @@ mod tests {
|
||||
.to_string()
|
||||
.contains("timezone cannot appear more than once"));
|
||||
|
||||
let result = parse(&mut "m1y");
|
||||
assert!(result.is_err());
|
||||
assert!(result
|
||||
.unwrap_err()
|
||||
.to_string()
|
||||
.contains("timezone cannot appear more than once"));
|
||||
|
||||
let result = parse(&mut "2025-05-19 abcdef");
|
||||
assert!(result.is_err());
|
||||
assert!(result.unwrap_err().to_string().contains("unexpected input"));
|
||||
|
||||
Reference in New Issue
Block a user