pub enum CalendarDateTime {
    Floating(NaiveDateTime),
    Utc(DateTime<Utc>),
    WithTimezone {
        date_time: NaiveDateTime,
        tzid: String,
    },
}
Expand description

Representation of various forms of DATE-TIME per RFC 5545, Section 3.3.5

Conversions from chrono types are provided in form of From implementations, see documentation of individual variants.

In addition to readily implemented FORM #1 and FORM #2, the RFC also specifies FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE. This variant is not yet implemented. Adding it will require adding support for VTIMEZONE and referencing it using TZID.

Variants§

§

Floating(NaiveDateTime)

FORM #1: DATE WITH LOCAL TIME: floating, follows current time-zone of the attendee.

Conversion from chrono::NaiveDateTime results in this variant.

§Note

finding this in a calendar is a red flag, datetimes should end in 'Z' for UTC or have a TZID property

§

Utc(DateTime<Utc>)

FORM #2: DATE WITH UTC TIME: rendered with Z suffix character.

Conversion from chrono::DateTime<Utc> results in this variant. Use date_time.with_timezone(&Utc) to convert date_time from arbitrary time zone to UTC.

§

WithTimezone

FORM #3: DATE WITH LOCAL TIME AND TIME ZONE REFERENCE: refers to a time zone definition.

Fields

§date_time: NaiveDateTime

The date and time in the given time zone.

§tzid: String

The ID of the time zone definition in a VTIMEZONE calendar component.

Implementations§

source§

impl CalendarDateTime

source

pub fn try_into_utc(&self) -> Option<DateTime<Utc>>

attempts to convert the into UTC

source

pub fn from_ymd_hm_tzid( year: i32, month: u32, day: u32, hour: u32, min: u32, tz_id: Tz ) -> Option<Self>

will return None if date is not valid

source

pub fn from_date_time<TZ: TimeZone<Offset = O>, O: OffsetName>( dt: DateTime<TZ> ) -> Self

Create a new instance with the given timezone

Trait Implementations§

source§

impl Clone for CalendarDateTime

source§

fn clone(&self) -> CalendarDateTime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CalendarDateTime

source§

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

Formats the value using the given formatter. Read more
source§

impl From<(NaiveDateTime, Tz)> for CalendarDateTime

source§

fn from((date_time, tzid): (NaiveDateTime, Tz)) -> Self

Converts to this type from the input type.
source§

impl From<CalendarDateTime> for DatePerhapsTime

source§

fn from(dt: CalendarDateTime) -> Self

Converts to this type from the input type.
source§

impl From<DateTime<Utc>> for CalendarDateTime

Converts from time zone-aware UTC date-time to CalendarDateTime::Utc.

source§

fn from(dt: DateTime<Utc>) -> Self

Converts to this type from the input type.
source§

impl From<NaiveDateTime> for CalendarDateTime

Converts from time zone-less date-time to CalendarDateTime::Floating.

source§

fn from(dt: NaiveDateTime) -> Self

Converts to this type from the input type.
source§

impl FromStr for CalendarDateTime

§

type Err = ()

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for CalendarDateTime

source§

fn eq(&self, other: &CalendarDateTime) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<(NaiveDateTime, &str)> for CalendarDateTime

§

type Error = String

The type returned in the event of a conversion error.
source§

fn try_from((dt, maybe_tz): (NaiveDateTime, &str)) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for CalendarDateTime

source§

impl StructuralPartialEq for CalendarDateTime

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

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

Performs the conversion.