DateTime

Struct DateTime 

Source
pub struct DateTime { /* private fields */ }
Expand description

A DateTime object.

This has minimal introspection methods. It is not an attempt to build a complete DateTime API. Prefer to use its implementation of chrono::Datelike and chrono::Timelike or simply the DateTime::to_chrono method to use a specific chrono::TimeZone, all available with features = ["chrono"].

Also, its Display implementation is geared towards lossless EDTF parse-format roundtrips. It does not always produce valid RFC3339 timestamps, in particular TzOffset::Hours is rendered as +04 instead of +04:00. This is best considered a problem with the EDTF specification for allowing a useless extra timestamp format.

Implementations§

Source§

impl DateTime

Source

pub fn date(&self) -> DateComplete

Gets the date portion

Source

pub fn time(&self) -> Time

Gets the time portion

Source

pub fn offset(&self) -> TzOffset

Get the TzOffset. If None is returned, this represents a timestamp which did not specify a timezone.

If using the chrono interop, None means you should attempt to convert to a chrono::NaiveDate

Source

pub fn to_chrono_naive(&self) -> NaiveDateTime

Available on crate feature chrono only.

Convert to a chrono::NaiveDate

Source

pub fn to_chrono<Tz>(&self, tz: &Tz) -> DateTime<Tz>
where Tz: TimeZone,

Available on crate feature chrono only.
use edtf::level_1::Edtf;
use chrono::TimeZone;

let utc = chrono::Utc;
assert_eq!(
    Edtf::parse("2004-02-29T01:47:00+05:00")
        .unwrap()
        .as_datetime()
        .unwrap()
        .to_chrono(&utc),
    utc.ymd(2004, 02, 28).and_hms(20, 47, 00)
);

Trait Implementations§

Source§

impl Clone for DateTime

Source§

fn clone(&self) -> DateTime

Returns a duplicate 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 Datelike for DateTime

Available on crate feature chrono only.

Convenience chrono::Datelike implementation, which mostly relies on internal conversion to chrono::NaiveDate.

Source§

fn year(&self) -> i32

Returns the year number in the calendar date.
Source§

fn month(&self) -> u32

Returns the month number starting from 1. Read more
Source§

fn month0(&self) -> u32

Returns the month number starting from 0. Read more
Source§

fn day(&self) -> u32

Returns the day of month starting from 1. Read more
Source§

fn day0(&self) -> u32

Returns the day of month starting from 0. Read more
Source§

fn ordinal(&self) -> u32

Returns the day of year starting from 1. Read more
Source§

fn ordinal0(&self) -> u32

Returns the day of year starting from 0. Read more
Source§

fn weekday(&self) -> Weekday

Returns the day of week.
Source§

fn iso_week(&self) -> IsoWeek

Returns the ISO week.
Source§

fn with_year(&self, year: i32) -> Option<Self>

Makes a new value with the year number changed, while keeping the same month and day. Read more
Source§

fn with_month(&self, month: u32) -> Option<Self>

Makes a new value with the month number (starting from 1) changed. Read more
Source§

fn with_month0(&self, month0: u32) -> Option<Self>

Makes a new value with the month number (starting from 0) changed. Read more
Source§

fn with_day(&self, day: u32) -> Option<Self>

Makes a new value with the day of month (starting from 1) changed. Read more
Source§

fn with_day0(&self, day0: u32) -> Option<Self>

Makes a new value with the day of month (starting from 0) changed. Read more
Source§

fn with_ordinal(&self, ordinal: u32) -> Option<Self>

Makes a new value with the day of year (starting from 1) changed. Read more
Source§

fn with_ordinal0(&self, ordinal0: u32) -> Option<Self>

Makes a new value with the day of year (starting from 0) changed. Read more
Source§

fn year_ce(&self) -> (bool, u32)

Returns the absolute year number starting from 1 with a boolean flag, which is false when the year predates the epoch (BCE/BC) and true otherwise (CE/AD).
Source§

fn quarter(&self) -> u32

Returns the quarter number starting from 1. Read more
Source§

fn num_days_from_ce(&self) -> i32

Counts the days in the proleptic Gregorian calendar, with January 1, Year 1 (CE) as day 1. Read more
Source§

fn num_days_in_month(&self) -> u8

Get the length in days of the month
Source§

impl Debug for DateTime

Source§

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

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

impl Display for DateTime

Source§

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

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

impl<DT> From<DT> for DateTime

Available on crate feature chrono only.
Source§

fn from(chrono_dt: DT) -> DateTime

Converts to this type from the input type.
Source§

impl Hash for DateTime

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DateTime

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Timelike for DateTime

Available on crate feature chrono only.
Source§

fn hour(&self) -> u32

Returns the hour number from 0 to 23.
Source§

fn minute(&self) -> u32

Returns the minute number from 0 to 59.
Source§

fn second(&self) -> u32

Returns the second number from 0 to 59.
Source§

fn nanosecond(&self) -> u32

Returns the number of nanoseconds since the whole non-leap second. The range from 1,000,000,000 to 1,999,999,999 represents the leap second.
Source§

fn with_hour(&self, hour: u32) -> Option<Self>

Makes a new value with the hour number changed. Read more
Source§

fn with_minute(&self, min: u32) -> Option<Self>

Makes a new value with the minute number changed. Read more
Source§

fn with_second(&self, sec: u32) -> Option<Self>

Makes a new value with the second number changed. Read more
Source§

fn with_nanosecond(&self, _nano: u32) -> Option<Self>

Makes a new value with nanoseconds since the whole non-leap second changed. Read more
Source§

fn hour12(&self) -> (bool, u32)

Returns the hour number from 1 to 12 with a boolean flag, which is false for AM and true for PM.
Source§

fn num_seconds_from_midnight(&self) -> u32

Returns the number of non-leap seconds past the last midnight. Read more
Source§

impl Copy for DateTime

Source§

impl Eq for DateTime

Source§

impl StructuralPartialEq for DateTime

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> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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,

Source§

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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.