#14123 Overwriting default date format to make it more consistent.

This commit is contained in:
RobbingDaHood 2024-12-09 17:52:54 +01:00
parent 685dc78739
commit f33ab30d13

View File

@ -1,17 +1,27 @@
use chrono::{DateTime, FixedOffset, Local, LocalResult, TimeZone}; use chrono::{DateTime, FixedOffset, Local, LocalResult, TimeZone};
use nu_protocol::{record, ShellError, Span, Value}; use nu_protocol::{record, ShellError, Span, Value};
use std::collections::HashMap;
pub(crate) fn parse_date_from_string( pub(crate) fn parse_date_from_string(
input: &str, input: &str,
span: Span, span: Span,
) -> Result<DateTime<FixedOffset>, Value> { ) -> Result<DateTime<FixedOffset>, Value> {
match dtparse::parse(input) { match dtparse::Parser::default().parse(
Ok((native_dt, fixed_offset)) => { input,
let offset = match fixed_offset { Some(true),
Some(true),
false,
false,
None,
false,
&HashMap::new(),
) {
Ok(result) => {
let offset = match result.1 {
Some(offset) => offset, Some(offset) => offset,
None => *(Local::now().offset()), None => *(Local::now().offset()),
}; };
match offset.from_local_datetime(&native_dt) { match offset.from_local_datetime(&result.0) {
LocalResult::Single(d) => Ok(d), LocalResult::Single(d) => Ok(d),
LocalResult::Ambiguous(d, _) => Ok(d), LocalResult::Ambiguous(d, _) => Ok(d),
LocalResult::None => Err(Value::error( LocalResult::None => Err(Value::error(