pub struct PlainDateTime { /* private fields */ }Expand description
Combined date and time.
Implementations§
Source§impl PlainDateTime
impl PlainDateTime
Sourcepub const MIN: Self
pub const MIN: Self
The smallest value that can be represented by PlainDateTime.
Depending on large-dates feature 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
Sourcepub const MAX: Self
pub const MAX: Self
The largest value that can be represented by PlainDateTime.
Depending on large-dates feature 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
Sourcepub const fn iso_week(self) -> u8
pub const fn iso_week(self) -> u8
Get the ISO week number.
The returned value will always be in the range 1..=53.
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.
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.
Sourcepub const fn to_calendar_date(self) -> (i32, Month, u8)
pub const fn to_calendar_date(self) -> (i32, Month, u8)
Sourcepub const fn to_ordinal_date(self) -> (i32, u16)
pub const fn to_ordinal_date(self) -> (i32, u16)
Sourcepub const fn to_iso_week_date(self) -> (i32, u8, Weekday)
pub const fn to_iso_week_date(self) -> (i32, u8, Weekday)
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)
);Sourcepub const fn weekday(self) -> Weekday
pub const fn weekday(self) -> Weekday
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);Sourcepub const fn to_julian_day(self) -> i32
pub const fn to_julian_day(self) -> i32
Get the Julian day for the date. The time is not taken into account for this calculation.
Sourcepub const fn millisecond(self) -> u16
pub const fn millisecond(self) -> u16
Sourcepub const fn microsecond(self) -> u32
pub const fn microsecond(self) -> u32
Sourcepub const fn nanosecond(self) -> u32
pub const fn nanosecond(self) -> u32
Sourcepub const fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
pub const fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
Assuming that the existing PlainDateTime represents a moment in the provided
UtcOffset, return an OffsetDateTime.
Sourcepub const fn assume_utc(self) -> OffsetDateTime
pub const fn assume_utc(self) -> OffsetDateTime
Assuming that the existing PlainDateTime represents a moment in UTC, return an
OffsetDateTime.
Note: You may want a UtcDateTime instead, which can be obtained with the
PlainDateTime::as_utc method.
Sourcepub const fn as_utc(self) -> UtcDateTime
pub const fn as_utc(self) -> UtcDateTime
Assuming that the existing PlainDateTime represents a moment in UTC, return a
UtcDateTime.
Sourcepub const fn checked_add(self, duration: SignedDuration) -> Option<Self>
pub const fn checked_add(self, duration: SignedDuration) -> Option<Self>
Computes self + duration, returning None if an overflow occurred.
Sourcepub const fn checked_sub(self, duration: SignedDuration) -> Option<Self>
pub const fn checked_sub(self, duration: SignedDuration) -> Option<Self>
Computes self - duration, returning None if an overflow occurred.
Sourcepub const fn saturating_add(self, duration: SignedDuration) -> Self
pub const fn saturating_add(self, duration: SignedDuration) -> Self
Computes self + duration, saturating value on overflow.
Sourcepub const fn saturating_sub(self, duration: SignedDuration) -> Self
pub const fn saturating_sub(self, duration: SignedDuration) -> Self
Computes self - duration, saturating value on overflow.
Source§impl PlainDateTime
Methods that replace part of the PlainDateTime.
impl PlainDateTime
Methods that replace part of the PlainDateTime.
Sourcepub const fn replace_time(self, time: Time) -> Self
pub const fn replace_time(self, time: Time) -> Self
Sourcepub const fn replace_date(self, date: Date) -> Self
pub const fn replace_date(self, date: Date) -> Self
Sourcepub const fn replace_year(self, year: i32) -> Result<Self, ComponentRange>
pub const fn replace_year(self, year: i32) -> Result<Self, ComponentRange>
Replace the year. The month and day will be unchanged.
assert_eq!(
datetime!(2022-02-18 12:00).replace_year(2019),
Ok(datetime!(2019-02-18 12:00))
);
assert!(datetime!(2022-02-18 12:00).replace_year(-1_000_000_000).is_err()); // -1_000_000_000 isn't a valid year
assert!(datetime!(2022-02-18 12:00).replace_year(1_000_000_000).is_err()); // 1_000_000_000 isn't a valid yearSourcepub const fn replace_month(self, month: Month) -> Result<Self, ComponentRange>
pub const fn replace_month(self, month: Month) -> Result<Self, ComponentRange>
Sourcepub const fn replace_day(self, day: u8) -> Result<Self, ComponentRange>
pub const fn replace_day(self, day: u8) -> Result<Self, ComponentRange>
Replace the day of the month.
Sourcepub const fn replace_ordinal(self, ordinal: u16) -> Result<Self, ComponentRange>
pub const fn replace_ordinal(self, ordinal: u16) -> Result<Self, ComponentRange>
Replace the day of the year.
Sourcepub const fn truncate_to_day(self) -> Self
pub const fn truncate_to_day(self) -> Self
Sourcepub const fn replace_hour(self, hour: u8) -> Result<Self, ComponentRange>
pub const fn replace_hour(self, hour: u8) -> Result<Self, ComponentRange>
Sourcepub const fn truncate_to_hour(self) -> Self
pub const fn truncate_to_hour(self) -> Self
Sourcepub const fn replace_minute(self, minute: u8) -> Result<Self, ComponentRange>
pub const fn replace_minute(self, minute: u8) -> Result<Self, ComponentRange>
Sourcepub const fn truncate_to_minute(self) -> Self
pub const fn truncate_to_minute(self) -> Self
Sourcepub const fn replace_second(self, second: u8) -> Result<Self, ComponentRange>
pub const fn replace_second(self, second: u8) -> Result<Self, ComponentRange>
Sourcepub const fn truncate_to_second(self) -> Self
pub const fn truncate_to_second(self) -> Self
Sourcepub const fn replace_millisecond(
self,
millisecond: u16,
) -> Result<Self, ComponentRange>
pub const fn replace_millisecond( self, millisecond: u16, ) -> Result<Self, ComponentRange>
Sourcepub const fn truncate_to_millisecond(self) -> Self
pub const fn truncate_to_millisecond(self) -> Self
Sourcepub const fn replace_microsecond(
self,
microsecond: u32,
) -> Result<Self, ComponentRange>
pub const fn replace_microsecond( self, microsecond: u32, ) -> Result<Self, ComponentRange>
Replace the microseconds within the second.
Sourcepub const fn truncate_to_microsecond(self) -> Self
pub const fn truncate_to_microsecond(self) -> Self
Sourcepub const fn replace_nanosecond(
self,
nanosecond: u32,
) -> Result<Self, ComponentRange>
pub const fn replace_nanosecond( self, nanosecond: u32, ) -> Result<Self, ComponentRange>
Replace the nanoseconds within the second.
Source§impl PlainDateTime
impl PlainDateTime
Sourcepub fn format_into(
self,
output: &mut (impl Write + ?Sized),
format: &(impl Formattable + ?Sized),
) -> Result<usize, Format>
Available on crate feature formatting only.
pub fn format_into( self, output: &mut (impl Write + ?Sized), format: &(impl Formattable + ?Sized), ) -> Result<usize, Format>
formatting only.Format the PlainDateTime using the provided format ///
description.
Sourcepub fn format(
self,
format: &(impl Formattable + ?Sized),
) -> Result<String, Format>
Available on crate feature formatting only.
pub fn format( self, format: &(impl Formattable + ?Sized), ) -> Result<String, Format>
formatting only.Format the PlainDateTime using the provided format
description.
Source§impl PlainDateTime
impl PlainDateTime
Sourcepub fn parse(
input: &str,
description: &(impl Parsable + ?Sized),
) -> Result<Self, Parse>
Available on crate feature parsing only.
pub fn parse( input: &str, description: &(impl Parsable + ?Sized), ) -> Result<Self, Parse>
parsing only.Parse a PlainDateTime from the input using the provided format
description.
Sourcepub fn parse_with_defaults(
input: &[u8],
description: &(impl Parsable + ?Sized),
defaults: Parsed,
) -> Result<Self, Parse>
Available on crate feature parsing only.
pub fn parse_with_defaults( input: &[u8], description: &(impl Parsable + ?Sized), defaults: Parsed, ) -> Result<Self, Parse>
parsing only.Parse a PlainDateTime from the input using the provided format
description and default values.
Trait Implementations§
Source§impl Add<Duration> for PlainDateTime
impl Add<Duration> for PlainDateTime
Source§fn add(self, duration: StdDuration) -> Self::Output
fn add(self, duration: StdDuration) -> Self::Output
§Panics
This may panic if an overflow occurs.
Source§type Output = PlainDateTime
type Output = PlainDateTime
+ operator.Source§impl Add<SignedDuration> for PlainDateTime
impl Add<SignedDuration> for PlainDateTime
Source§fn add(self, duration: SignedDuration) -> Self::Output
fn add(self, duration: SignedDuration) -> Self::Output
§Panics
This may panic if an overflow occurs.
Source§type Output = PlainDateTime
type Output = PlainDateTime
+ operator.Source§impl AddAssign<Duration> for PlainDateTime
impl AddAssign<Duration> for PlainDateTime
Source§fn add_assign(&mut self, duration: StdDuration)
fn add_assign(&mut self, duration: StdDuration)
§Panics
This may panic if an overflow occurs.
Source§impl AddAssign<SignedDuration> for PlainDateTime
impl AddAssign<SignedDuration> for PlainDateTime
Source§fn add_assign(&mut self, duration: SignedDuration)
fn add_assign(&mut self, duration: SignedDuration)
§Panics
This may panic if an overflow occurs.
Source§impl Arbitrary for PlainDateTime
Available on crate feature quickcheck only.
impl Arbitrary for PlainDateTime
quickcheck only.Source§impl Clone for PlainDateTime
impl Clone for PlainDateTime
Source§fn clone(&self) -> PlainDateTime
fn clone(&self) -> PlainDateTime
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PlainDateTime
Source§impl Debug for PlainDateTime
impl Debug for PlainDateTime
Source§impl<'a> Deserialize<'a> for PlainDateTime
Available on crate feature serde only.
impl<'a> Deserialize<'a> for PlainDateTime
serde only.Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'a>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'a>,
Source§impl Display for PlainDateTime
impl Display for PlainDateTime
Source§impl Distribution<PlainDateTime> for StandardUniform
Available on crate feature rand010 only.
impl Distribution<PlainDateTime> for StandardUniform
rand010 only.Source§fn sample<R>(&self, rng: &mut R) -> PlainDateTimewhere
R: Rng + ?Sized,
fn sample<R>(&self, rng: &mut R) -> PlainDateTimewhere
R: Rng + ?Sized,
T, using rng as the source of randomness.§fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>where
R: Rng,
Self: Sized,
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>where
R: Rng,
Self: Sized,
T, using rng as
the source of randomness. Read moreSource§impl Distribution<PlainDateTime> for Standard
Available on crate feature rand08 only.
impl Distribution<PlainDateTime> for Standard
rand08 only.Source§fn sample<R>(&self, rng: &mut R) -> PlainDateTime
fn sample<R>(&self, rng: &mut R) -> PlainDateTime
T, using rng as the source of randomness.Source§fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>
T, using rng as
the source of randomness. Read moreSource§impl Distribution<PlainDateTime> for StandardUniform
Available on crate feature rand09 only.
impl Distribution<PlainDateTime> for StandardUniform
rand09 only.Source§fn sample<R>(&self, rng: &mut R) -> PlainDateTime
fn sample<R>(&self, rng: &mut R) -> PlainDateTime
T, using rng as the source of randomness.Source§fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>
fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>
T, using rng as
the source of randomness. Read moreimpl Eq for PlainDateTime
Source§impl Hash for PlainDateTime
impl Hash for PlainDateTime
Source§impl Ord for PlainDateTime
impl Ord for PlainDateTime
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for PlainDateTime
impl PartialEq for PlainDateTime
Source§impl PartialOrd for PlainDateTime
impl PartialOrd for PlainDateTime
Source§impl Serialize for PlainDateTime
Available on crate feature serde only.
impl Serialize for PlainDateTime
serde only.Source§impl SmartDisplay for PlainDateTime
impl SmartDisplay for PlainDateTime
Source§fn metadata(&self, _: FormatterOptions) -> Metadata<'_, Self>
fn metadata(&self, _: FormatterOptions) -> Metadata<'_, Self>
Source§impl Sub for PlainDateTime
impl Sub for PlainDateTime
Source§impl Sub<Duration> for PlainDateTime
impl Sub<Duration> for PlainDateTime
Source§fn sub(self, duration: StdDuration) -> Self::Output
fn sub(self, duration: StdDuration) -> Self::Output
§Panics
This may panic if an overflow occurs.
Source§type Output = PlainDateTime
type Output = PlainDateTime
- operator.Source§impl Sub<SignedDuration> for PlainDateTime
impl Sub<SignedDuration> for PlainDateTime
Source§fn sub(self, duration: SignedDuration) -> Self::Output
fn sub(self, duration: SignedDuration) -> Self::Output
§Panics
This may panic if an overflow occurs.
Source§type Output = PlainDateTime
type Output = PlainDateTime
- operator.Source§impl SubAssign<Duration> for PlainDateTime
impl SubAssign<Duration> for PlainDateTime
Source§fn sub_assign(&mut self, duration: StdDuration)
fn sub_assign(&mut self, duration: StdDuration)
§Panics
This may panic if an overflow occurs.
Source§impl SubAssign<SignedDuration> for PlainDateTime
impl SubAssign<SignedDuration> for PlainDateTime
Source§fn sub_assign(&mut self, duration: SignedDuration)
fn sub_assign(&mut self, duration: SignedDuration)
§Panics
This may panic if an overflow occurs.