From fbe3898589a5800186a5fbf0d2782433b1829759 Mon Sep 17 00:00:00 2001 From: Ron Harel Date: Sun, 23 Jun 2024 12:28:01 +0300 Subject: [PATCH] Added a timezone object to the DateTime object generated in cql_to_py. --- src/utils.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 2cff220..cc164ce 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -515,10 +515,23 @@ pub fn cql_to_py<'a>( "Cannot construct datetime based on timestamp", ), )?; + + // Create timezone object. + let py_datetime = py.import("datetime")?; + + let timezone_offset_kwargs = PyDict::new(py); + timezone_offset_kwargs.set_item("seconds", chrono::Local::now().offset().local_minus_utc())?; + let timezone_object = py_datetime.call_method1("timezone", ( + py_datetime.call_method("timedelta", (), Some(&timezone_offset_kwargs))?, + ))?; + #[allow(clippy::cast_precision_loss)] - Ok(py.import("datetime")?.getattr("datetime")?.call_method1( + Ok(py_datetime.getattr("datetime")?.call_method1( "fromtimestamp", - (timestamp.timestamp_millis() as f64 / 1000f64,), + ( + timestamp.timestamp_millis() as f64 / 1000f64, + timezone_object + ), )?) } ColumnType::Inet => Ok(unwrapped_value