Skip to main content

Module jiff

Module jiff 

Source
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-inspect
use 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-inspect
use crate::type_hint_identifier; 🔒 experimental-inspect
use 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::*; 🔒

Functions§

datetime_to_pydatetime 🔒
pytime_to_time 🔒
⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here