Struct time::PrimitiveDateTime
source · [−]pub struct PrimitiveDateTime { /* private fields */ }
Expand description
Combined date and time.
Implementations
sourceimpl PrimitiveDateTime
impl PrimitiveDateTime
sourcepub const fn new(date: Date, time: Time) -> Self
pub const fn new(date: Date, time: Time) -> Self
Create a new PrimitiveDateTime
from the provided Date
and Time
.
assert_eq!(
PrimitiveDateTime::new(date!(2019-01-01), time!(0:00)),
date!(2019-01-01).midnight(),
);
sourcepub fn now() -> Self
👎 Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
pub fn now() -> Self
This method returns a value that assumes an offset of UTC.
Create a new PrimitiveDateTime
with the current date and time (UTC).
assert!(PrimitiveDateTime::now().year() >= 2019);
sourcepub const fn unix_epoch() -> Self
👎 Deprecated since 0.2.7: This method assumes an offset of UTC.
pub const fn unix_epoch() -> Self
This method assumes an offset of UTC.
Midnight, 1 January, 1970 (UTC).
assert_eq!(
PrimitiveDateTime::unix_epoch(),
date!(1970-01-01).midnight()
);
sourcepub fn from_unix_timestamp(timestamp: i64) -> Self
👎 Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
pub fn from_unix_timestamp(timestamp: i64) -> Self
This method returns a value that assumes an offset of UTC.
Create a PrimitiveDateTime
from the provided Unix timestamp.
assert_eq!(
PrimitiveDateTime::from_unix_timestamp(0),
PrimitiveDateTime::unix_epoch()
);
assert_eq!(
PrimitiveDateTime::from_unix_timestamp(1_546_300_800),
date!(2019-01-01).midnight(),
);
sourcepub fn timestamp(self) -> i64
👎 Deprecated since 0.2.7: This method assumes an offset of UTC.
pub fn timestamp(self) -> i64
This method assumes an offset of UTC.
Get the Unix timestamp
representing the PrimitiveDateTime
.
assert_eq!(PrimitiveDateTime::unix_epoch().timestamp(), 0);
assert_eq!(date!(2019-01-01).midnight().timestamp(), 1_546_300_800);
sourcepub const fn date(self) -> Date
pub const fn date(self) -> Date
Get the Date
component of the PrimitiveDateTime
.
assert_eq!(
date!(2019-01-01).midnight().date(),
date!(2019-01-01)
);
sourcepub const fn time(self) -> Time
pub const fn time(self) -> Time
Get the Time
component of the PrimitiveDateTime
.
assert_eq!(date!(2019-01-01).midnight().time(), time!(0:00));
sourcepub const fn year(self) -> i32
pub const fn year(self) -> i32
Get the year of the date.
assert_eq!(date!(2019-01-01).midnight().year(), 2019);
assert_eq!(date!(2019-12-31).midnight().year(), 2019);
assert_eq!(date!(2020-01-01).midnight().year(), 2020);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn month(self) -> u8
pub const fn month(self) -> u8
Get the month of the date. If fetching both the month and day, it is
more efficient to use PrimitiveDateTime::month_day
.
The returned value will always be in the range 1..=12
.
assert_eq!(date!(2019-01-01).midnight().month(), 1);
assert_eq!(date!(2019-12-31).midnight().month(), 12);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn day(self) -> u8
pub const fn day(self) -> u8
Get the day of the date. If fetching both the month and day, it is
more efficient to use PrimitiveDateTime::month_day
.
The returned value will always be in the range 1..=31
.
assert_eq!(date!(2019-1-1).midnight().day(), 1);
assert_eq!(date!(2019-12-31).midnight().day(), 31);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn month_day(self) -> (u8, u8)
pub const fn month_day(self) -> (u8, u8)
Get the month and day of the date. This is more efficient than fetching the components individually.
The month component will always be in the range 1..=12
;
the day component in 1..=31
.
assert_eq!(date!(2019-01-01).midnight().month_day(), (1, 1));
assert_eq!(date!(2019-12-31).midnight().month_day(), (12, 31));
This function is const fn
when using rustc >= 1.46.
sourcepub const fn ordinal(self) -> u16
pub const fn ordinal(self) -> u16
Get the day of the year.
The returned value will always be in the range 1..=366
(1..=365
for
common years).
assert_eq!(date!(2019-01-01).midnight().ordinal(), 1);
assert_eq!(date!(2019-12-31).midnight().ordinal(), 365);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn iso_year_week(self) -> (i32, u8)
pub const fn iso_year_week(self) -> (i32, u8)
Get the ISO 8601 year and week number.
assert_eq!(date!(2019-01-01).midnight().iso_year_week(), (2019, 1));
assert_eq!(date!(2019-10-04).midnight().iso_year_week(), (2019, 40));
assert_eq!(date!(2020-01-01).midnight().iso_year_week(), (2020, 1));
assert_eq!(date!(2020-12-31).midnight().iso_year_week(), (2020, 53));
assert_eq!(date!(2021-01-01).midnight().iso_year_week(), (2020, 53));
This function is const fn
when using rustc >= 1.46.
sourcepub const fn week(self) -> u8
pub const fn week(self) -> u8
Get the ISO week number.
The returned value will always be in the range 1..=53
.
assert_eq!(date!(2019-01-01).midnight().week(), 1);
assert_eq!(date!(2019-10-04).midnight().week(), 40);
assert_eq!(date!(2020-01-01).midnight().week(), 1);
assert_eq!(date!(2020-12-31).midnight().week(), 53);
assert_eq!(date!(2021-01-01).midnight().week(), 53);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn sunday_based_week(self) -> u8
pub const fn sunday_based_week(self) -> u8
Get the week number where week 1 begins on the first Sunday.
The returned value will always be in the range 0..=53
.
assert_eq!(date!(2019-01-01).midnight().sunday_based_week(), 0);
assert_eq!(date!(2020-01-01).midnight().sunday_based_week(), 0);
assert_eq!(date!(2020-12-31).midnight().sunday_based_week(), 52);
assert_eq!(date!(2021-01-01).midnight().sunday_based_week(), 0);
This function is const fn
when using rustc >= 1.46.
sourcepub const fn monday_based_week(self) -> u8
pub const fn monday_based_week(self) -> u8
Get the week number where week 1 begins on the first Monday.
The returned value will always be in the range 0..=53
.
assert_eq!(date!(2019-01-01).midnight().monday_based_week(), 0);
assert_eq!(date!(2020-01-01).midnight().monday_based_week(), 0);
assert_eq!(date!(2020-12-31).midnight().monday_based_week(), 52);
assert_eq!(date!(2021-01-01).midnight().monday_based_week(), 0);
This function is const fn
when using rustc >= 1.46.
sourcepub fn weekday(self) -> Weekday
pub fn weekday(self) -> Weekday
Get the weekday.
This current uses Zeller’s congruence internally.
assert_eq!(date!(2019-01-01).midnight().weekday(), Tuesday);
assert_eq!(date!(2019-02-01).midnight().weekday(), Friday);
assert_eq!(date!(2019-03-01).midnight().weekday(), Friday);
assert_eq!(date!(2019-04-01).midnight().weekday(), Monday);
assert_eq!(date!(2019-05-01).midnight().weekday(), Wednesday);
assert_eq!(date!(2019-06-01).midnight().weekday(), Saturday);
assert_eq!(date!(2019-07-01).midnight().weekday(), Monday);
assert_eq!(date!(2019-08-01).midnight().weekday(), Thursday);
assert_eq!(date!(2019-09-01).midnight().weekday(), Sunday);
assert_eq!(date!(2019-10-01).midnight().weekday(), Tuesday);
assert_eq!(date!(2019-11-01).midnight().weekday(), Friday);
assert_eq!(date!(2019-12-01).midnight().weekday(), Sunday);
sourcepub const fn hour(self) -> u8
pub const fn hour(self) -> u8
Get the clock hour.
The returned value will always be in the range 0..24
.
assert_eq!(date!(2019-01-01).midnight().hour(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59)).hour(), 23);
sourcepub const fn minute(self) -> u8
pub const fn minute(self) -> u8
Get the minute within the hour.
The returned value will always be in the range 0..60
.
assert_eq!(date!(2019-01-01).midnight().minute(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59)).minute(), 59);
sourcepub const fn second(self) -> u8
pub const fn second(self) -> u8
Get the second within the minute.
The returned value will always be in the range 0..60
.
assert_eq!(date!(2019-01-01).midnight().second(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59)).second(), 59);
sourcepub const fn millisecond(self) -> u16
pub const fn millisecond(self) -> u16
Get the milliseconds within the second.
The returned value will always be in the range 0..1_000
.
assert_eq!(date!(2019-01-01).midnight().millisecond(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59.999)).millisecond(), 999);
sourcepub const fn microsecond(self) -> u32
pub const fn microsecond(self) -> u32
Get the microseconds within the second.
The returned value will always be in the range 0..1_000_000
.
assert_eq!(date!(2019-01-01).midnight().microsecond(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59.999_999)).microsecond(), 999_999);
sourcepub const fn nanosecond(self) -> u32
pub const fn nanosecond(self) -> u32
Get the nanoseconds within the second.
The returned value will always be in the range 0..1_000_000_000
.
assert_eq!(date!(2019-01-01).midnight().nanosecond(), 0);
assert_eq!(
date!(2019-01-01).with_time(time!(23:59:59.999_999_999)).nanosecond(),
999_999_999,
);
sourcepub const fn using_offset(self, offset: UtcOffset) -> OffsetDateTime
👎 Deprecated since 0.2.7: Due to behavior not clear by its name alone, it is preferred to use .assume_utc().to_offset(offset)
. This has the same behavior and can be used in const
contexts.
pub const fn using_offset(self, offset: UtcOffset) -> OffsetDateTime
Due to behavior not clear by its name alone, it is preferred to use .assume_utc().to_offset(offset)
. This has the same behavior and can be used in const
contexts.
Assuming that the existing PrimitiveDateTime
represents a moment in
the UTC, return an OffsetDateTime
with the provided UtcOffset
.
assert_eq!(
date!(2019-01-01).midnight().using_offset(offset!(UTC)).unix_timestamp(),
1_546_300_800,
);
assert_eq!(
date!(2019-01-01).midnight().using_offset(offset!(-1)).unix_timestamp(),
1_546_300_800,
);
This function is the same as calling .assume_utc().to_offset(offset)
.
sourcepub fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
pub fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
Assuming that the existing PrimitiveDateTime
represents a moment in
the provided UtcOffset
, return an OffsetDateTime
.
assert_eq!(
date!(2019-01-01).midnight().assume_offset(offset!(UTC)).unix_timestamp(),
1_546_300_800,
);
assert_eq!(
date!(2019-01-01).midnight().assume_offset(offset!(-1)).unix_timestamp(),
1_546_304_400,
);
sourcepub const fn assume_utc(self) -> OffsetDateTime
pub const fn assume_utc(self) -> OffsetDateTime
Assuming that the existing PrimitiveDateTime
represents a moment in
the UTC, return an OffsetDateTime
.
assert_eq!(
date!(2019-01-01).midnight().assume_utc().unix_timestamp(),
1_546_300_800,
);
This function is the same as calling .assume_offset(offset!(UTC))
,
except it is usable in const
contexts.
sourceimpl PrimitiveDateTime
impl PrimitiveDateTime
Methods that allow formatting the PrimitiveDateTime
.
sourcepub fn format(self, format: impl AsRef<str>) -> String
pub fn format(self, format: impl AsRef<str>) -> String
Format the PrimitiveDateTime
using the provided string.
assert_eq!(
date!(2019-01-02).midnight().format("%F %r"),
"2019-01-02 12:00:00 am"
);
sourcepub fn lazy_format(self, format: impl AsRef<str>) -> impl Display
pub fn lazy_format(self, format: impl AsRef<str>) -> impl Display
Format the PrimitiveDateTime
using the provided string.
assert_eq!(
date!(2019-01-02).midnight().lazy_format("%F %r").to_string(),
"2019-01-02 12:00:00 am"
);
sourcepub fn parse(s: impl AsRef<str>, format: impl AsRef<str>) -> Result<Self, Error>
pub fn parse(s: impl AsRef<str>, format: impl AsRef<str>) -> Result<Self, Error>
Attempt to parse a PrimitiveDateTime
using the provided string.
assert_eq!(
PrimitiveDateTime::parse("2019-01-02 00:00:00", "%F %T"),
Ok(date!(2019-01-02).midnight()),
);
assert_eq!(
PrimitiveDateTime::parse("2019-002 23:59:59", "%Y-%j %T"),
Ok(date!(2019-002).with_time(time!(23:59:59)))
);
assert_eq!(
PrimitiveDateTime::parse("2019-W01-3 12:00:00 pm", "%G-W%V-%u %r"),
Ok(date!(2019-W01-3).with_time(time!(12:00))),
);
Trait Implementations
sourceimpl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
sourceimpl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
sourceimpl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
sourcefn add_assign(&mut self, duration: Duration)
fn add_assign(&mut self, duration: Duration)
Performs the +=
operation. Read more
sourceimpl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
sourcefn add_assign(&mut self, duration: StdDuration)
fn add_assign(&mut self, duration: StdDuration)
Performs the +=
operation. Read more
sourceimpl Clone for PrimitiveDateTime
impl Clone for PrimitiveDateTime
sourcefn clone(&self) -> PrimitiveDateTime
fn clone(&self) -> PrimitiveDateTime
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for PrimitiveDateTime
impl Debug for PrimitiveDateTime
sourceimpl Display for PrimitiveDateTime
impl Display for PrimitiveDateTime
sourceimpl From<PrimitiveDateTime> for SystemTime
impl From<PrimitiveDateTime> for SystemTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourcefn from(datetime: PrimitiveDateTime) -> Self
fn from(datetime: PrimitiveDateTime) -> Self
Performs the conversion.
sourceimpl From<SystemTime> for PrimitiveDateTime
impl From<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it returns a value that assumes an offset of UTC.
sourcefn from(system_time: SystemTime) -> Self
fn from(system_time: SystemTime) -> Self
Performs the conversion.
sourceimpl Hash for PrimitiveDateTime
impl Hash for PrimitiveDateTime
sourceimpl Ord for PrimitiveDateTime
impl Ord for PrimitiveDateTime
sourceimpl PartialEq<PrimitiveDateTime> for PrimitiveDateTime
impl PartialEq<PrimitiveDateTime> for PrimitiveDateTime
sourcefn eq(&self, other: &PrimitiveDateTime) -> bool
fn eq(&self, other: &PrimitiveDateTime) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PrimitiveDateTime) -> bool
fn ne(&self, other: &PrimitiveDateTime) -> bool
This method tests for !=
.
sourceimpl PartialEq<PrimitiveDateTime> for SystemTime
impl PartialEq<PrimitiveDateTime> for SystemTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourceimpl PartialEq<SystemTime> for PrimitiveDateTime
impl PartialEq<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourceimpl PartialOrd<PrimitiveDateTime> for PrimitiveDateTime
impl PartialOrd<PrimitiveDateTime> for PrimitiveDateTime
sourcefn partial_cmp(&self, other: &Self) -> Option<Ordering>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl PartialOrd<PrimitiveDateTime> for SystemTime
impl PartialOrd<PrimitiveDateTime> for SystemTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourcefn partial_cmp(&self, other: &PrimitiveDateTime) -> Option<Ordering>
fn partial_cmp(&self, other: &PrimitiveDateTime) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl PartialOrd<SystemTime> for PrimitiveDateTime
impl PartialOrd<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourcefn partial_cmp(&self, other: &SystemTime) -> Option<Ordering>
fn partial_cmp(&self, other: &SystemTime) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
sourceimpl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
sourceimpl Sub<PrimitiveDateTime> for PrimitiveDateTime
impl Sub<PrimitiveDateTime> for PrimitiveDateTime
sourceimpl Sub<PrimitiveDateTime> for SystemTime
impl Sub<PrimitiveDateTime> for SystemTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourceimpl Sub<SystemTime> for PrimitiveDateTime
impl Sub<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
sourceimpl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
sourcefn sub_assign(&mut self, duration: Duration)
fn sub_assign(&mut self, duration: Duration)
Performs the -=
operation. Read more
sourceimpl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
sourcefn sub_assign(&mut self, duration: StdDuration)
fn sub_assign(&mut self, duration: StdDuration)
Performs the -=
operation. Read more
impl Copy for PrimitiveDateTime
impl Eq for PrimitiveDateTime
impl StructuralEq for PrimitiveDateTime
impl StructuralPartialEq for PrimitiveDateTime
Auto Trait Implementations
impl RefUnwindSafe for PrimitiveDateTime
impl Send for PrimitiveDateTime
impl Sync for PrimitiveDateTime
impl Unpin for PrimitiveDateTime
impl UnwindSafe for PrimitiveDateTime
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more