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 is supported on crate feature std only.
This method returns a value that assumes an offset of UTC.
std only.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
Deserialize this value from the given Serde deserializer. Read more
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.
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.
Performs the -= operation. Read more
Performs the -= operation. Read more
Auto Trait Implementations
impl RefUnwindSafe for PrimitiveDateTimeimpl Send for PrimitiveDateTimeimpl Sync for PrimitiveDateTimeimpl Unpin for PrimitiveDateTimeimpl UnwindSafe for PrimitiveDateTimeBlanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V