Available on crate feature
jiff-02 only.Expand description
Conversions to and from jiff’s Span, SignedDuration, TimeZone,
Offset, Date, Time, DateTime, Zoned, and Timestamp.
§Setup
To use this feature, add this to your Cargo.toml:
[dependencies]
jiff = "0.2"
pyo3 = { version = "0.30.0", features = ["jiff-02"] }Note that you must use compatible versions of jiff and PyO3. The required jiff version may vary based on the version of PyO3.
§Example: Convert a datetime.datetime to jiff Zoned
use jiff::{Zoned, SignedDuration, ToSpan};
use pyo3::{Python, PyResult, IntoPyObject, types::PyAnyMethods};
fn main() -> PyResult<()> {
Python::initialize();
Python::attach(|py| {
// Build some jiff values
let jiff_zoned = Zoned::now();
let jiff_span = 1.second();
// Convert them to Python
let py_datetime = jiff_zoned.into_pyobject(py)?;
let py_timedelta = SignedDuration::try_from(jiff_span)?.into_pyobject(py)?;
// Do an operation in Python
let py_sum = py_datetime.call_method1("__add__", (py_timedelta,))?;
// Convert back to Rust
let jiff_sum: Zoned = py_sum.extract()?;
println!("Zoned: {}", jiff_sum);
Ok(())
})
}Re-exports§
use crate::exceptions::PyTypeError;🔒use crate::exceptions::PyValueError;🔒use crate::inspect::PyStaticExpr;🔒experimental-inspectuse crate::types::PyAnyMethods;🔒use crate::types::PyNone;🔒use crate::types::PyDate;🔒use crate::types::PyDateTime;🔒use crate::types::PyDelta;🔒use crate::types::PyTime;🔒use crate::types::PyTzInfo;🔒use crate::types::PyTzInfoAccess;🔒use crate::types::PyDateAccess;🔒use crate::types::PyDeltaAccess;🔒use crate::types::PyTimeAccess;🔒use crate::Borrowed;🔒use crate::Bound;🔒use crate::FromPyObject;🔒use crate::FromPyObject;🔒use crate::IntoPyObject;🔒use crate::IntoPyObject;🔒use crate::PyAny;🔒use crate::PyErr;🔒use crate::PyResult;🔒use crate::Python;🔒use crate::intern;🔒use crate::PyTypeInfo;🔒experimental-inspectuse crate::type_hint_identifier;🔒experimental-inspectuse alloc::borrow::Cow;🔒use jiff::civil::Date;🔒use jiff::civil::DateTime;🔒use jiff::civil::ISOWeekDate;🔒use jiff::civil::Time;🔒use jiff::tz::AmbiguousOffset;🔒use jiff::tz::Offset;🔒use jiff::tz::TimeZone;🔒use jiff::SignedDuration;🔒use jiff::Span;🔒use jiff::Timestamp;🔒use jiff::Zoned;🔒use jiff_02 as jiff;🔒use crate::platform::prelude::*;🔒