diff --git a/src/naive/datetime/serde.rs b/src/naive/datetime/serde.rs index f23805e0f3..08b7d021ab 100644 --- a/src/naive/datetime/serde.rs +++ b/src/naive/datetime/serde.rs @@ -223,7 +223,9 @@ assert_eq!(my_s.time, time); expecting: "a unix timestamp", visit_i64(i64): |value: i64| NaiveDateTime::from_timestamp_opt(value, 0) .ok_or_else(|| E::custom(ne_timestamp(value))), - visit_u64(u64): |value: u64| NaiveDateTime::from_timestamp_opt(value as i64, 0) + visit_u64(u64): |value: u64| i64::try_from(value) + .ok() + .and_then(|v| NaiveDateTime::from_timestamp_opt(v, 0)) .ok_or_else(|| E::custom(ne_timestamp(value))), }