mirror of
https://github.com/nushell/nushell.git
synced 2025-05-30 22:57:07 +02:00
taking local timezone as default
This commit is contained in:
parent
3c75eb077d
commit
f9b6b245b7
@ -690,23 +690,19 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
let offset = match parse_timezone_from_record(record, &head, &span) {
|
let offset: FixedOffset = match record.get("timezone") {
|
||||||
Ok(value) => value,
|
Some(timezone) => {
|
||||||
Err(err) => {
|
let offset = match parse_timezone_from_record(timezone, &head, &span) {
|
||||||
return err;
|
Ok(value) => value,
|
||||||
|
Err(err) => {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
offset
|
||||||
}
|
}
|
||||||
|
None => now.offset().to_owned(),
|
||||||
};
|
};
|
||||||
|
|
||||||
dbg!(&year);
|
|
||||||
dbg!(&month);
|
|
||||||
dbg!(&day);
|
|
||||||
dbg!(&hour);
|
|
||||||
dbg!(&minute);
|
|
||||||
dbg!(&second);
|
|
||||||
dbg!(&millisecond);
|
|
||||||
dbg!(µsecond);
|
|
||||||
dbg!(&nanosecond);
|
|
||||||
|
|
||||||
let total_nanoseconds = nanosecond + microsecond * 1_000 + millisecond * 1_000_000;
|
let total_nanoseconds = nanosecond + microsecond * 1_000 + millisecond * 1_000_000;
|
||||||
|
|
||||||
let date = match NaiveDate::from_ymd_opt(year, month, day) {
|
let date = match NaiveDate::from_ymd_opt(year, month, day) {
|
||||||
@ -792,39 +788,36 @@ fn parse_value_from_record_as_u32(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn parse_timezone_from_record(
|
fn parse_timezone_from_record(
|
||||||
record: &Record,
|
timezone: &Value,
|
||||||
head: &Span,
|
head: &Span,
|
||||||
span: &Span,
|
span: &Span,
|
||||||
) -> Result<FixedOffset, Value> {
|
) -> Result<FixedOffset, Value> {
|
||||||
match record.get("timezone") {
|
match timezone {
|
||||||
Some(val) => match val {
|
Value::String { val, internal_span } => {
|
||||||
Value::String { val, internal_span } => {
|
let offset: FixedOffset = match val.parse() {
|
||||||
let offset: FixedOffset = match val.parse() {
|
Ok(offset) => offset,
|
||||||
Ok(offset) => offset,
|
Err(_) => {
|
||||||
Err(_) => {
|
return Err(Value::error(
|
||||||
return Err(Value::error(
|
ShellError::IncorrectValue {
|
||||||
ShellError::IncorrectValue {
|
msg: "invalid timezone".to_string(),
|
||||||
msg: "invalid timezone".to_string(),
|
val_span: *internal_span,
|
||||||
val_span: *internal_span,
|
call_span: *head,
|
||||||
call_span: *head,
|
},
|
||||||
},
|
*span,
|
||||||
*span,
|
))
|
||||||
))
|
}
|
||||||
}
|
};
|
||||||
};
|
Ok(offset)
|
||||||
Ok(offset)
|
}
|
||||||
}
|
other => Err(Value::error(
|
||||||
other => Err(Value::error(
|
ShellError::OnlySupportsThisInputType {
|
||||||
ShellError::OnlySupportsThisInputType {
|
exp_input_type: "string".to_string(),
|
||||||
exp_input_type: "string".to_string(),
|
wrong_type: other.get_type().to_string(),
|
||||||
wrong_type: other.get_type().to_string(),
|
dst_span: *head,
|
||||||
dst_span: *head,
|
src_span: other.span(),
|
||||||
src_span: other.span(),
|
},
|
||||||
},
|
*span,
|
||||||
*span,
|
)),
|
||||||
)),
|
|
||||||
},
|
|
||||||
None => Ok(FixedOffset::east_opt(0).expect("Should never fail")),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user