Struct TimeZonePrecedingTransitions

struct TimeZonePrecedingTransitions<'t> { ... }

An iterator over time zone transitions going backward in time.

This iterator is created by TimeZone::preceding.

Example: show the 5 previous time zone transitions

This shows how to find the 5 preceding time zone transitions (from a particular datetime) for a particular time zone:

use jiff::{tz::offset, Zoned};

let now: Zoned = "2024-12-31 18:25-05[US/Eastern]".parse()?;
let transitions = now
    .time_zone()
    .preceding(now.timestamp())
    .take(5)
    .map(|t| (
        t.timestamp().to_zoned(now.time_zone().clone()),
        t.offset(),
        t.abbreviation().to_string(),
    ))
    .collect::<Vec<_>>();
assert_eq!(transitions, vec![
    ("2024-11-03 01:00-05[US/Eastern]".parse()?, offset(-5), "EST".to_string()),
    ("2024-03-10 03:00-04[US/Eastern]".parse()?, offset(-4), "EDT".to_string()),
    ("2023-11-05 01:00-05[US/Eastern]".parse()?, offset(-5), "EST".to_string()),
    ("2023-03-12 03:00-04[US/Eastern]".parse()?, offset(-4), "EDT".to_string()),
    ("2022-11-06 01:00-05[US/Eastern]".parse()?, offset(-5), "EST".to_string()),
]);

# Ok::<(), Box<dyn std::error::Error>>(())

Implementations

impl<'t> Clone for TimeZonePrecedingTransitions<'t>

fn clone(self: &Self) -> TimeZonePrecedingTransitions<'t>

impl<'t> Debug for TimeZonePrecedingTransitions<'t>

fn fmt(self: &Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result

impl<'t> Freeze for TimeZonePrecedingTransitions<'t>

impl<'t> FusedIterator for TimeZonePrecedingTransitions<'t>

impl<'t> Iterator for TimeZonePrecedingTransitions<'t>

fn next(self: &mut Self) -> Option<TimeZoneTransition<'t>>

impl<'t> RefUnwindSafe for TimeZonePrecedingTransitions<'t>

impl<'t> Send for TimeZonePrecedingTransitions<'t>

impl<'t> Sync for TimeZonePrecedingTransitions<'t>

impl<'t> Unpin for TimeZonePrecedingTransitions<'t>

impl<'t> UnwindSafe for TimeZonePrecedingTransitions<'t>

impl<I> IntoIterator for TimeZonePrecedingTransitions<'t>

fn into_iter(self: Self) -> I

impl<T> Any for TimeZonePrecedingTransitions<'t>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for TimeZonePrecedingTransitions<'t>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for TimeZonePrecedingTransitions<'t>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for TimeZonePrecedingTransitions<'t>

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for TimeZonePrecedingTransitions<'t>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for TimeZonePrecedingTransitions<'t>

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for TimeZonePrecedingTransitions<'t>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for TimeZonePrecedingTransitions<'t>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for TimeZonePrecedingTransitions<'t>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>