Struct time::PrimitiveDateTime [−][src]
pub struct PrimitiveDateTime { /* fields omitted */ }
Expand description
Combined date and time.
Implementations
Get the year of the date.
assert_eq!(datetime!(2019-01-01 0:00).year(), 2019); assert_eq!(datetime!(2019-12-31 0:00).year(), 2019); assert_eq!(datetime!(2020-01-01 0:00).year(), 2020);Run
Get the month of the date.
The returned value will always be in the range 1..=12
.
assert_eq!(datetime!(2019-01-01 0:00).month(), Month::January); assert_eq!(datetime!(2019-12-31 0:00).month(), Month::December);Run
Get the day of the date.
The returned value will always be in the range 1..=31
.
assert_eq!(datetime!(2019-01-01 0:00).day(), 1); assert_eq!(datetime!(2019-12-31 0:00).day(), 31);Run
Get the day of the year.
The returned value will always be in the range 1..=366
(1..=365
for common years).
assert_eq!(datetime!(2019-01-01 0:00).ordinal(), 1); assert_eq!(datetime!(2019-12-31 0:00).ordinal(), 365);Run
Get the ISO week number.
The returned value will always be in the range 1..=53
.
assert_eq!(datetime!(2019-01-01 0:00).iso_week(), 1); assert_eq!(datetime!(2019-10-04 0:00).iso_week(), 40); assert_eq!(datetime!(2020-01-01 0:00).iso_week(), 1); assert_eq!(datetime!(2020-12-31 0:00).iso_week(), 53); assert_eq!(datetime!(2021-01-01 0:00).iso_week(), 53);Run
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!(datetime!(2019-01-01 0:00).sunday_based_week(), 0); assert_eq!(datetime!(2020-01-01 0:00).sunday_based_week(), 0); assert_eq!(datetime!(2020-12-31 0:00).sunday_based_week(), 52); assert_eq!(datetime!(2021-01-01 0:00).sunday_based_week(), 0);Run
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!(datetime!(2019-01-01 0:00).monday_based_week(), 0); assert_eq!(datetime!(2020-01-01 0:00).monday_based_week(), 0); assert_eq!(datetime!(2020-12-31 0:00).monday_based_week(), 52); assert_eq!(datetime!(2021-01-01 0:00).monday_based_week(), 0);Run
Get the year, month, and day.
assert_eq!( datetime!(2019-01-01 0:00).to_calendar_date(), (2019, Month::January, 1) );Run
Get the year and ordinal day number.
assert_eq!(datetime!(2019-01-01 0:00).to_ordinal_date(), (2019, 1));Run
Get the ISO 8601 year, week number, and weekday.
assert_eq!( datetime!(2019-01-01 0:00).to_iso_week_date(), (2019, 1, Tuesday) ); assert_eq!( datetime!(2019-10-04 0:00).to_iso_week_date(), (2019, 40, Friday) ); assert_eq!( datetime!(2020-01-01 0:00).to_iso_week_date(), (2020, 1, Wednesday) ); assert_eq!( datetime!(2020-12-31 0:00).to_iso_week_date(), (2020, 53, Thursday) ); assert_eq!( datetime!(2021-01-01 0:00).to_iso_week_date(), (2020, 53, Friday) );Run
Get the weekday.
assert_eq!(datetime!(2019-01-01 0:00).weekday(), Tuesday); assert_eq!(datetime!(2019-02-01 0:00).weekday(), Friday); assert_eq!(datetime!(2019-03-01 0:00).weekday(), Friday); assert_eq!(datetime!(2019-04-01 0:00).weekday(), Monday); assert_eq!(datetime!(2019-05-01 0:00).weekday(), Wednesday); assert_eq!(datetime!(2019-06-01 0:00).weekday(), Saturday); assert_eq!(datetime!(2019-07-01 0:00).weekday(), Monday); assert_eq!(datetime!(2019-08-01 0:00).weekday(), Thursday); assert_eq!(datetime!(2019-09-01 0:00).weekday(), Sunday); assert_eq!(datetime!(2019-10-01 0:00).weekday(), Tuesday); assert_eq!(datetime!(2019-11-01 0:00).weekday(), Friday); assert_eq!(datetime!(2019-12-01 0:00).weekday(), Sunday);Run
Get the Julian day for the date. The time is not taken into account for this calculation.
The algorithm to perform this conversion is derived from one provided by Peter Baum; it is freely available here.
assert_eq!(datetime!(-4713-11-24 0:00).to_julian_day(), 0); assert_eq!(datetime!(2000-01-01 0:00).to_julian_day(), 2_451_545); assert_eq!(datetime!(2019-01-01 0:00).to_julian_day(), 2_458_485); assert_eq!(datetime!(2019-12-31 0:00).to_julian_day(), 2_458_849);Run
Get the clock hour, minute, and second.
assert_eq!(datetime!(2020-01-01 0:00:00).as_hms(), (0, 0, 0)); assert_eq!(datetime!(2020-01-01 23:59:59).as_hms(), (23, 59, 59));Run
Get the clock hour, minute, second, and millisecond.
assert_eq!(datetime!(2020-01-01 0:00:00).as_hms_milli(), (0, 0, 0, 0)); assert_eq!( datetime!(2020-01-01 23:59:59.999).as_hms_milli(), (23, 59, 59, 999) );Run
Get the clock hour, minute, second, and microsecond.
assert_eq!(datetime!(2020-01-01 0:00:00).as_hms_micro(), (0, 0, 0, 0)); assert_eq!( datetime!(2020-01-01 23:59:59.999_999).as_hms_micro(), (23, 59, 59, 999_999) );Run
Get the clock hour, minute, second, and nanosecond.
assert_eq!(datetime!(2020-01-01 0:00:00).as_hms_nano(), (0, 0, 0, 0)); assert_eq!( datetime!(2020-01-01 23:59:59.999_999_999).as_hms_nano(), (23, 59, 59, 999_999_999) );Run
Get the clock hour.
The returned value will always be in the range 0..24
.
assert_eq!(datetime!(2019-01-01 0:00).hour(), 0); assert_eq!(datetime!(2019-01-01 23:59:59).hour(), 23);Run
Get the minute within the hour.
The returned value will always be in the range 0..60
.
assert_eq!(datetime!(2019-01-01 0:00).minute(), 0); assert_eq!(datetime!(2019-01-01 23:59:59).minute(), 59);Run
Get the second within the minute.
The returned value will always be in the range 0..60
.
assert_eq!(datetime!(2019-01-01 0:00).second(), 0); assert_eq!(datetime!(2019-01-01 23:59:59).second(), 59);Run
Get the milliseconds within the second.
The returned value will always be in the range 0..1_000
.
assert_eq!(datetime!(2019-01-01 0:00).millisecond(), 0); assert_eq!(datetime!(2019-01-01 23:59:59.999).millisecond(), 999);Run
Get the microseconds within the second.
The returned value will always be in the range 0..1_000_000
.
assert_eq!(datetime!(2019-01-01 0:00).microsecond(), 0); assert_eq!( datetime!(2019-01-01 23:59:59.999_999).microsecond(), 999_999 );Run
Get the nanoseconds within the second.
The returned value will always be in the range 0..1_000_000_000
.
assert_eq!(datetime!(2019-01-01 0:00).nanosecond(), 0); assert_eq!( datetime!(2019-01-01 23:59:59.999_999_999).nanosecond(), 999_999_999, );Run
Assuming that the existing PrimitiveDateTime
represents a moment in the provided
UtcOffset
, return an OffsetDateTime
.
assert_eq!( datetime!(2019-01-01 0:00) .assume_offset(offset!(UTC)) .unix_timestamp(), 1_546_300_800, ); assert_eq!( datetime!(2019-01-01 0:00) .assume_offset(offset!(-1)) .unix_timestamp(), 1_546_304_400, );Run
Assuming that the existing PrimitiveDateTime
represents a moment in the UTC, return an
OffsetDateTime
.
assert_eq!( datetime!(2019-01-01 0:00).assume_utc().unix_timestamp(), 1_546_300_800, );Run
Methods that replace part of the PrimitiveDateTime
.
#[must_use = "This method does not mutate the original `PrimitiveDateTime`."]pub const fn replace_time(self, time: Time) -> Self
[src]
#[must_use = "This method does not mutate the original `PrimitiveDateTime`."]pub const fn replace_time(self, time: Time) -> Self
[src]Replace the time, preserving the date.
assert_eq!( datetime!(2020-01-01 17:00).replace_time(time!(5:00)), datetime!(2020-01-01 5:00) );Run
#[must_use = "This method does not mutate the original `PrimitiveDateTime`."]pub const fn replace_date(self, date: Date) -> Self
[src]
#[must_use = "This method does not mutate the original `PrimitiveDateTime`."]pub const fn replace_date(self, date: Date) -> Self
[src]Replace the date, preserving the time.
assert_eq!( datetime!(2020-01-01 12:00).replace_date(date!(2020-01-30)), datetime!(2020-01-30 12:00) );Run
pub fn format_into(
self,
output: &mut impl Write,
format: &impl Formattable
) -> Result<usize, Format>
[src]This is supported on crate feature formatting
only.
pub fn format_into(
self,
output: &mut impl Write,
format: &impl Formattable
) -> Result<usize, Format>
[src]formatting
only.Format the PrimitiveDateTime
using the provided format description. The formatted value
will be output to the provided writer. The format description will typically be parsed by
using format_description::parse
.
This is supported on crate feature formatting
only.
formatting
only.Format the PrimitiveDateTime
using the provided format description. The format description
will typically be parsed by using
format_description::parse
.
let format = format_description::parse("[year]-[month]-[day] [hour]:[minute]:[second]")?; assert_eq!( datetime!(2020-01-02 03:04:05).format(&format)?, "2020-01-02 03:04:05" );Run
This is supported on crate feature parsing
only.
parsing
only.Parse a PrimitiveDateTime
from the input using the provided format description. The format
description will typically be parsed by using
format_description::parse
.
let format = format_description::parse("[year]-[month]-[day] [hour]:[minute]:[second]")?; assert_eq!( PrimitiveDateTime::parse("2020-01-02 03:04:05", &format)?, datetime!(2020-01-02 03:04:05) );Run
Trait Implementations
Performs the +=
operation. Read more
quickcheck
only.serde
only.Deserialize this value from the given Serde deserializer. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
serde
only.Performs the -=
operation. Read more
parsing
only.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
Mutably borrows from an owned value. Read more