Struct time::PrimitiveDateTime [−][src]
pub struct PrimitiveDateTime { /* fields omitted */ }
Expand description
Combined date and time.
Implementations
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(),
);
👎 Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
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);
👎 Deprecated since 0.2.7: This method assumes an offset of UTC.
This method assumes an offset of UTC.
Midnight, 1 January, 1970 (UTC).
assert_eq!(
PrimitiveDateTime::unix_epoch(),
date!(1970-01-01).midnight()
);
👎 Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
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(),
);
👎 Deprecated since 0.2.7: This method assumes an offset of UTC.
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);
Get the Date
component of the PrimitiveDateTime
.
assert_eq!(
date!(2019-01-01).midnight().date(),
date!(2019-01-01)
);
Get the Time
component of the PrimitiveDateTime
.
assert_eq!(date!(2019-01-01).midnight().time(), time!(0:00));
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.
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.
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.
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.
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.
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.
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.
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.
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.
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);
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);
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);
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);
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);
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);
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,
);
👎 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.
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)
.
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,
);
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.
Methods that allow formatting the PrimitiveDateTime
.
Format the PrimitiveDateTime
using the provided string.
assert_eq!(
date!(2019-01-02).midnight().format("%F %r"),
"2019-01-02 12:00:00 am"
);
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"
);
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
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Deprecated since v0.2.7, as it assumes an offset of UTC.
Performs the conversion.
Deprecated since v0.2.7, as it returns a value that assumes an offset of UTC.
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Deprecated since v0.2.7, as it assumes an offset of UTC.
Deprecated since v0.2.7, as it assumes an offset of UTC.
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
Deprecated since v0.2.7, as it assumes an offset of UTC.
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
Deprecated since v0.2.7, as it assumes an offset of UTC.
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
Deprecated since v0.2.7, as it assumes an offset of UTC.
Deprecated since v0.2.7, as it assumes an offset of UTC.
Performs the -=
operation. Read more
Performs the -=
operation. Read more
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