Struct PlainDateTime
#[repr(C)]
pub struct PlainDateTime { /* private fields */ }
Combined date and time.
Implementations
impl PlainDateTime
const MIN: Self = _;The smallest value that can be represented by
PlainDateTime.Depending on
large-datesfeature flag, value of this constant may vary.- With
large-datesdisabled it is equal to-9999-01-01 00:00:00.0 - With
large-datesenabled it is equal to-999999-01-01 00:00:00.0
# use PlainDateTime; # use datetime; // Assuming `large-dates` feature is disabled. assert_eq!;- With
const MAX: Self = _;The largest value that can be represented by
PlainDateTime.Depending on
large-datesfeature flag, value of this constant may vary.- With
large-datesdisabled it is equal to9999-12-31 23:59:59.999_999_999 - With
large-datesenabled it is equal to999999-12-31 23:59:59.999_999_999
# use PlainDateTime; # use datetime; // Assuming `large-dates` feature is disabled. assert_eq!;- With
const fn new(date: Date, time: Time) -> SelfCreate a new
PlainDateTimefrom the providedDateandTime.# use PlainDateTime; # use ; assert_eq!;const fn date(self) -> DateGet the
Datecomponent of thePlainDateTime.# use ; assert_eq!;const fn time(self) -> TimeGet the
Timecomponent of thePlainDateTime.# use ; assert_eq!;const fn year(self) -> i32Get the year of the date.
# use datetime; assert_eq!; assert_eq!; assert_eq!;const fn month(self) -> MonthGet the month of the date.
# use Month; # use datetime; assert_eq!; assert_eq!;const fn day(self) -> u8Get the day of the date.
The returned value will always be in the range
1..=31.# use datetime; assert_eq!; assert_eq!;const fn ordinal(self) -> u16Get the day of the year.
The returned value will always be in the range
1..=366(1..=365for common years).# use datetime; assert_eq!; assert_eq!;const fn iso_week(self) -> u8Get the ISO week number.
The returned value will always be in the range
1..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn sunday_based_week(self) -> u8Get the week number where week 1 begins on the first Sunday.
The returned value will always be in the range
0..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn monday_based_week(self) -> u8Get the week number where week 1 begins on the first Monday.
The returned value will always be in the range
0..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn to_calendar_date(self) -> (i32, Month, u8)Get the year, month, and day.
# use Month; # use datetime; assert_eq!;const fn to_ordinal_date(self) -> (i32, u16)Get the year and ordinal day number.
# use datetime; assert_eq!;const fn to_iso_week_date(self) -> (i32, u8, Weekday)Get the ISO 8601 year, week number, and weekday.
# use *; # use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn weekday(self) -> WeekdayGet the weekday.
# use *; # use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn to_julian_day(self) -> i32Get the Julian day for the date. The time is not taken into account for this calculation.
# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn as_hms(self) -> (u8, u8, u8)Get the clock hour, minute, and second.
# use datetime; assert_eq!; assert_eq!;const fn as_hms_milli(self) -> (u8, u8, u8, u16)Get the clock hour, minute, second, and millisecond.
# use datetime; assert_eq!; assert_eq!;const fn as_hms_micro(self) -> (u8, u8, u8, u32)Get the clock hour, minute, second, and microsecond.
# use datetime; assert_eq!; assert_eq!;const fn as_hms_nano(self) -> (u8, u8, u8, u32)Get the clock hour, minute, second, and nanosecond.
# use datetime; assert_eq!; assert_eq!;const fn hour(self) -> u8Get the clock hour.
The returned value will always be in the range
0..24.# use datetime; assert_eq!; assert_eq!;const fn minute(self) -> u8Get the minute within the hour.
The returned value will always be in the range
0..60.# use datetime; assert_eq!; assert_eq!;const fn second(self) -> u8Get the second within the minute.
The returned value will always be in the range
0..60.# use datetime; assert_eq!; assert_eq!;const fn millisecond(self) -> u16Get the milliseconds within the second.
The returned value will always be in the range
0..1_000.# use datetime; assert_eq!; assert_eq!;const fn microsecond(self) -> u32Get the microseconds within the second.
The returned value will always be in the range
0..1_000_000.# use datetime; assert_eq!; assert_eq!;const fn nanosecond(self) -> u32Get the nanoseconds within the second.
The returned value will always be in the range
0..1_000_000_000.# use datetime; assert_eq!; assert_eq!;const fn assume_offset(self, offset: UtcOffset) -> OffsetDateTimeAssuming that the existing
PlainDateTimerepresents a moment in the providedUtcOffset, return anOffsetDateTime.# use ; assert_eq!; assert_eq!;const fn assume_utc(self) -> OffsetDateTimeAssuming that the existing
PlainDateTimerepresents a moment in UTC, return anOffsetDateTime.# use datetime; assert_eq!;Note: You may want a
UtcDateTimeinstead, which can be obtained with thePlainDateTime::as_utcmethod.const fn as_utc(self) -> UtcDateTimeAssuming that the existing
PlainDateTimerepresents a moment in UTC, return aUtcDateTime.# use datetime; assert_eq!;const fn checked_add(self, duration: SignedDuration) -> Option<Self>Computes
self + duration, returningNoneif an overflow occurred.# use ; # use datetime; let datetime = MIN.midnight; assert_eq!; let datetime = MAX.midnight; assert_eq!; assert_eq!;const fn checked_sub(self, duration: SignedDuration) -> Option<Self>Computes
self - duration, returningNoneif an overflow occurred.# use ; # use datetime; let datetime = MIN.midnight; assert_eq!; let datetime = MAX.midnight; assert_eq!; assert_eq!;const fn saturating_add(self, duration: SignedDuration) -> SelfComputes
self + duration, saturating value on overflow.# use ; # use datetime; assert_eq!; assert_eq!; assert_eq!;const fn saturating_sub(self, duration: SignedDuration) -> SelfComputes
self - duration, saturating value on overflow.# use ; # use datetime; assert_eq!; assert_eq!; assert_eq!;
impl PlainDateTime
const fn replace_time(self, time: Time) -> SelfReplace the time, preserving the date.
# use ; assert_eq!;const fn replace_date(self, date: Date) -> SelfReplace the date, preserving the time.
# use ; assert_eq!;const fn replace_year(self, year: i32) -> Result<Self, ComponentRange>Replace the year. The month and day will be unchanged.
# use datetime; assert_eq!; assert!; // -1_000_000_000 isn't a valid year assert!; // 1_000_000_000 isn't a valid yearconst fn replace_month(self, month: Month) -> Result<Self, ComponentRange>Replace the month of the year.
# use datetime; # use Month; assert_eq!; assert!; // 30 isn't a valid day in Februaryconst fn replace_day(self, day: u8) -> Result<Self, ComponentRange>Replace the day of the month.
# use datetime; assert_eq!; assert!; // 00 isn't a valid day assert!; // 30 isn't a valid day in Februaryconst fn replace_ordinal(self, ordinal: u16) -> Result<Self, ComponentRange>Replace the day of the year.
# use datetime; assert_eq!; assert!; // 0 isn't a valid ordinal assert!; // 2022 isn't a leap yearconst fn truncate_to_day(self) -> SelfTruncate to the start of the day, setting the time to midnight.
# use datetime; assert_eq!;const fn replace_hour(self, hour: u8) -> Result<Self, ComponentRange>Replace the clock hour.
# use datetime; assert_eq!; assert!; // 24 isn't a valid hourconst fn truncate_to_hour(self) -> SelfTruncate to the hour, setting the minute, second, and subsecond components to zero.
# use datetime; assert_eq!;const fn replace_minute(self, minute: u8) -> Result<Self, ComponentRange>Replace the minutes within the hour.
# use datetime; assert_eq!; assert!; // 60 isn't a valid minuteconst fn truncate_to_minute(self) -> SelfTruncate to the minute, setting the second and subsecond components to zero.
# use datetime; assert_eq!;const fn replace_second(self, second: u8) -> Result<Self, ComponentRange>Replace the seconds within the minute.
# use datetime; assert_eq!; assert!; // 60 isn't a valid secondconst fn truncate_to_second(self) -> SelfTruncate to the second, setting the subsecond components to zero.
# use datetime; assert_eq!;const fn replace_millisecond(self, millisecond: u16) -> Result<Self, ComponentRange>Replace the milliseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000 isn't a valid millisecondconst fn truncate_to_millisecond(self) -> SelfTruncate to the millisecond, setting the microsecond and nanosecond components to zero.
# use datetime; assert_eq!;const fn replace_microsecond(self, microsecond: u32) -> Result<Self, ComponentRange>Replace the microseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000_000 isn't a valid microsecondconst fn truncate_to_microsecond(self) -> SelfTruncate to the microsecond, setting the nanosecond component to zero.
# use datetime; assert_eq!;const fn replace_nanosecond(self, nanosecond: u32) -> Result<Self, ComponentRange>Replace the nanoseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000_000_000 isn't a valid nanosecond
Trait Implementations
impl Add<Duration> for PlainDateTime
type Output = PlainDateTime;fn add(self, duration: StdDuration) -> Self::OutputPanics
This may panic if an overflow occurs.
impl Add<SignedDuration> for PlainDateTime
type Output = PlainDateTime;fn add(self, duration: SignedDuration) -> Self::OutputPanics
This may panic if an overflow occurs.
impl AddAssign<Duration> for PlainDateTime
fn add_assign(&mut self, duration: StdDuration)Panics
This may panic if an overflow occurs.
impl AddAssign<SignedDuration> for PlainDateTime
fn add_assign(&mut self, duration: SignedDuration)Panics
This may panic if an overflow occurs.
impl Clone for PlainDateTime
fn clone(&self) -> PlainDateTime
impl Copy for PlainDateTime
impl Debug for PlainDateTime
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Display for PlainDateTime
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for PlainDateTime
impl Hash for PlainDateTime
fn hash<H>(&self, state: &mut H) where H: Hasher,
impl Ord for PlainDateTime
fn cmp(&self, other: &Self) -> Ordering
impl PartialEq for PlainDateTime
fn eq(&self, other: &Self) -> bool
impl PartialOrd for PlainDateTime
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
impl SmartDisplay for PlainDateTime
type Metadata = ();fn metadata(&self, FormatterOptions) -> Metadata<'_, Self>fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Sub for PlainDateTime
type Output = SignedDuration;fn sub(self, rhs: Self) -> Self::Output
impl Sub<Duration> for PlainDateTime
type Output = PlainDateTime;fn sub(self, duration: StdDuration) -> Self::OutputPanics
This may panic if an overflow occurs.
impl Sub<SignedDuration> for PlainDateTime
type Output = PlainDateTime;fn sub(self, duration: SignedDuration) -> Self::OutputPanics
This may panic if an overflow occurs.
impl SubAssign<Duration> for PlainDateTime
fn sub_assign(&mut self, duration: StdDuration)Panics
This may panic if an overflow occurs.
impl SubAssign<SignedDuration> for PlainDateTime
fn sub_assign(&mut self, duration: SignedDuration)Panics
This may panic if an overflow occurs.
Auto Trait Implementations
impl Freeze for PlainDateTime
impl RefUnwindSafe for PlainDateTime
impl Send for PlainDateTime
impl Sync for PlainDateTime
impl Unpin for PlainDateTime
impl UnsafeUnpin for PlainDateTime
impl UnwindSafe for PlainDateTime
Blanket Implementations
impl<T> Any for PlainDateTime
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for PlainDateTime
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for PlainDateTime
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for PlainDateTime
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for PlainDateTime
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for PlainDateTime
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> ToString for PlainDateTime
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for PlainDateTime
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for PlainDateTime
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for PlainDateTime
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>