pub struct PlainDateTime { /* private fields */ }cookies only.Expand description
Combined date and time.
Implementations§
Source§impl PlainDateTime
impl PlainDateTime
Sourcepub const MIN: PlainDateTime
pub const MIN: PlainDateTime
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
// Assuming `large-dates` feature is disabled.
assert_eq!(PlainDateTime::MIN, datetime!(-9999-01-01 0:00));Sourcepub const MAX: PlainDateTime
pub const MAX: PlainDateTime
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
// Assuming `large-dates` feature is disabled.
assert_eq!(PlainDateTime::MAX, datetime!(+9999-12-31 23:59:59.999_999_999));Sourcepub const fn new(date: Date, time: Time) -> PlainDateTime
pub const fn new(date: Date, time: Time) -> PlainDateTime
Sourcepub const fn date(self) -> Date
pub const fn date(self) -> Date
Get the Date component of the PlainDateTime.
assert_eq!(datetime!(2019-01-01 0:00).date(), date!(2019-01-01));Sourcepub const fn time(self) -> Time
pub const fn time(self) -> Time
Get the Time component of the PlainDateTime.
assert_eq!(datetime!(2019-01-01 0:00).time(), time!(0:00));Sourcepub const fn year(self) -> i32
pub const fn year(self) -> i32
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);Sourcepub const fn month(self) -> Month
pub const fn month(self) -> Month
Get the month of the date.
assert_eq!(datetime!(2019-01-01 0:00).month(), Month::January);
assert_eq!(datetime!(2019-12-31 0:00).month(), Month::December);Sourcepub const fn day(self) -> u8
pub const fn day(self) -> u8
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);Sourcepub const fn ordinal(self) -> u16
pub const fn ordinal(self) -> u16
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);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.
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);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.
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);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.
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);Sourcepub const fn to_calendar_date(self) -> (i32, Month, u8)
pub const fn to_calendar_date(self) -> (i32, Month, u8)
Get the year, month, and day.
assert_eq!(
datetime!(2019-01-01 0:00).to_calendar_date(),
(2019, Month::January, 1)
);Sourcepub const fn to_ordinal_date(self) -> (i32, u16)
pub const fn to_ordinal_date(self) -> (i32, u16)
Get the year and ordinal day number.
assert_eq!(datetime!(2019-01-01 0:00).to_ordinal_date(), (2019, 1));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.
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);Sourcepub const fn as_hms(self) -> (u8, u8, u8)
pub const fn as_hms(self) -> (u8, u8, u8)
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));Sourcepub const fn as_hms_milli(self) -> (u8, u8, u8, u16)
pub const fn as_hms_milli(self) -> (u8, u8, u8, u16)
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)
);Sourcepub const fn as_hms_micro(self) -> (u8, u8, u8, u32)
pub const fn as_hms_micro(self) -> (u8, u8, u8, u32)
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)
);Sourcepub const fn as_hms_nano(self) -> (u8, u8, u8, u32)
pub const fn as_hms_nano(self) -> (u8, u8, u8, u32)
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)
);Sourcepub const fn hour(self) -> u8
pub const fn hour(self) -> u8
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);Sourcepub const fn minute(self) -> u8
pub const fn minute(self) -> u8
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);Sourcepub const fn second(self) -> u8
pub const fn second(self) -> u8
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);Sourcepub const fn millisecond(self) -> u16
pub const fn millisecond(self) -> u16
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);Sourcepub const fn microsecond(self) -> u32
pub const fn microsecond(self) -> u32
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
);Sourcepub const fn nanosecond(self) -> u32
pub const fn nanosecond(self) -> u32
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,
);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.
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,
);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.
assert_eq!(
datetime!(2019-01-01 0:00).assume_utc().unix_timestamp(),
1_546_300_800,
);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.
assert_eq!(
datetime!(2019-01-01 0:00).as_utc().unix_timestamp(),
1_546_300_800,
);Sourcepub const fn checked_add(
self,
duration: SignedDuration,
) -> Option<PlainDateTime>
pub const fn checked_add( self, duration: SignedDuration, ) -> Option<PlainDateTime>
Computes self + duration, returning None if an overflow occurred.
let datetime = Date::MIN.midnight();
assert_eq!(datetime.checked_add((-2).days()), None);
let datetime = Date::MAX.midnight();
assert_eq!(datetime.checked_add(1.days()), None);
assert_eq!(
datetime!(2019-11-25 15:30).checked_add(27.hours()),
Some(datetime!(2019-11-26 18:30))
);Sourcepub const fn checked_sub(
self,
duration: SignedDuration,
) -> Option<PlainDateTime>
pub const fn checked_sub( self, duration: SignedDuration, ) -> Option<PlainDateTime>
Computes self - duration, returning None if an overflow occurred.
let datetime = Date::MIN.midnight();
assert_eq!(datetime.checked_sub(2.days()), None);
let datetime = Date::MAX.midnight();
assert_eq!(datetime.checked_sub((-1).days()), None);
assert_eq!(
datetime!(2019-11-25 15:30).checked_sub(27.hours()),
Some(datetime!(2019-11-24 12:30))
);Sourcepub const fn saturating_add(self, duration: SignedDuration) -> PlainDateTime
pub const fn saturating_add(self, duration: SignedDuration) -> PlainDateTime
Computes self + duration, saturating value on overflow.
assert_eq!(
PlainDateTime::MIN.saturating_add((-2).days()),
PlainDateTime::MIN
);
assert_eq!(
PlainDateTime::MAX.saturating_add(2.days()),
PlainDateTime::MAX
);
assert_eq!(
datetime!(2019-11-25 15:30).saturating_add(27.hours()),
datetime!(2019-11-26 18:30)
);Sourcepub const fn saturating_sub(self, duration: SignedDuration) -> PlainDateTime
pub const fn saturating_sub(self, duration: SignedDuration) -> PlainDateTime
Computes self - duration, saturating value on overflow.
assert_eq!(
PlainDateTime::MIN.saturating_sub(2.days()),
PlainDateTime::MIN
);
assert_eq!(
PlainDateTime::MAX.saturating_sub((-2).days()),
PlainDateTime::MAX
);
assert_eq!(
datetime!(2019-11-25 15:30).saturating_sub(27.hours()),
datetime!(2019-11-24 12:30)
);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) -> PlainDateTime
pub const fn replace_time(self, time: Time) -> PlainDateTime
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)
);Sourcepub const fn replace_date(self, date: Date) -> PlainDateTime
pub const fn replace_date(self, date: Date) -> PlainDateTime
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)
);Sourcepub const fn replace_year(
self,
year: i32,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_year( self, year: i32, ) -> Result<PlainDateTime, 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<PlainDateTime, ComponentRange>
pub const fn replace_month( self, month: Month, ) -> Result<PlainDateTime, ComponentRange>
Replace the month of the year.
assert_eq!(
datetime!(2022-02-18 12:00).replace_month(Month::January),
Ok(datetime!(2022-01-18 12:00))
);
assert!(datetime!(2022-01-30 12:00).replace_month(Month::February).is_err()); // 30 isn't a valid day in FebruarySourcepub const fn replace_day(self, day: u8) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_day(self, day: u8) -> Result<PlainDateTime, ComponentRange>
Replace the day of the month.
assert_eq!(
datetime!(2022-02-18 12:00).replace_day(1),
Ok(datetime!(2022-02-01 12:00))
);
assert!(datetime!(2022-02-18 12:00).replace_day(0).is_err()); // 00 isn't a valid day
assert!(datetime!(2022-02-18 12:00).replace_day(30).is_err()); // 30 isn't a valid day in FebruarySourcepub const fn replace_ordinal(
self,
ordinal: u16,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_ordinal( self, ordinal: u16, ) -> Result<PlainDateTime, ComponentRange>
Replace the day of the year.
assert_eq!(datetime!(2022-049 12:00).replace_ordinal(1), Ok(datetime!(2022-001 12:00)));
assert!(datetime!(2022-049 12:00).replace_ordinal(0).is_err()); // 0 isn't a valid ordinal
assert!(datetime!(2022-049 12:00).replace_ordinal(366).is_err()); // 2022 isn't a leap yearSourcepub const fn truncate_to_day(self) -> PlainDateTime
pub const fn truncate_to_day(self) -> PlainDateTime
Truncate to the start of the day, setting the time to midnight.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_day(),
datetime!(2022-02-18 0:00)
);Sourcepub const fn replace_hour(
self,
hour: u8,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_hour( self, hour: u8, ) -> Result<PlainDateTime, ComponentRange>
Replace the clock hour.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_hour(7),
Ok(datetime!(2022-02-18 07:02:03.004_005_006))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_hour(24).is_err()); // 24 isn't a valid hourSourcepub const fn truncate_to_hour(self) -> PlainDateTime
pub const fn truncate_to_hour(self) -> PlainDateTime
Truncate to the hour, setting the minute, second, and subsecond components to zero.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_hour(),
datetime!(2022-02-18 15:00)
);Sourcepub const fn replace_minute(
self,
minute: u8,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_minute( self, minute: u8, ) -> Result<PlainDateTime, ComponentRange>
Replace the minutes within the hour.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_minute(7),
Ok(datetime!(2022-02-18 01:07:03.004_005_006))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_minute(60).is_err()); // 60 isn't a valid minuteSourcepub const fn truncate_to_minute(self) -> PlainDateTime
pub const fn truncate_to_minute(self) -> PlainDateTime
Truncate to the minute, setting the second and subsecond components to zero.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_minute(),
datetime!(2022-02-18 15:30)
);Sourcepub const fn replace_second(
self,
second: u8,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_second( self, second: u8, ) -> Result<PlainDateTime, ComponentRange>
Replace the seconds within the minute.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_second(7),
Ok(datetime!(2022-02-18 01:02:07.004_005_006))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_second(60).is_err()); // 60 isn't a valid secondSourcepub const fn truncate_to_second(self) -> PlainDateTime
pub const fn truncate_to_second(self) -> PlainDateTime
Truncate to the second, setting the subsecond components to zero.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_second(),
datetime!(2022-02-18 15:30:45)
);Sourcepub const fn replace_millisecond(
self,
millisecond: u16,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_millisecond( self, millisecond: u16, ) -> Result<PlainDateTime, ComponentRange>
Replace the milliseconds within the second.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_millisecond(7),
Ok(datetime!(2022-02-18 01:02:03.007))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_millisecond(1_000).is_err()); // 1_000 isn't a valid millisecondSourcepub const fn truncate_to_millisecond(self) -> PlainDateTime
pub const fn truncate_to_millisecond(self) -> PlainDateTime
Truncate to the millisecond, setting the microsecond and nanosecond components to zero.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_millisecond(),
datetime!(2022-02-18 15:30:45.123)
);Sourcepub const fn replace_microsecond(
self,
microsecond: u32,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_microsecond( self, microsecond: u32, ) -> Result<PlainDateTime, ComponentRange>
Replace the microseconds within the second.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_microsecond(7_008),
Ok(datetime!(2022-02-18 01:02:03.007_008))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_microsecond(1_000_000).is_err()); // 1_000_000 isn't a valid microsecondSourcepub const fn truncate_to_microsecond(self) -> PlainDateTime
pub const fn truncate_to_microsecond(self) -> PlainDateTime
Truncate to the microsecond, setting the nanosecond component to zero.
assert_eq!(
datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_microsecond(),
datetime!(2022-02-18 15:30:45.123_456)
);Sourcepub const fn replace_nanosecond(
self,
nanosecond: u32,
) -> Result<PlainDateTime, ComponentRange>
pub const fn replace_nanosecond( self, nanosecond: u32, ) -> Result<PlainDateTime, ComponentRange>
Replace the nanoseconds within the second.
assert_eq!(
datetime!(2022-02-18 01:02:03.004_005_006).replace_nanosecond(7_008_009),
Ok(datetime!(2022-02-18 01:02:03.007_008_009))
);
assert!(datetime!(2022-02-18 01:02:03.004_005_006).replace_nanosecond(1_000_000_000).is_err()); // 1_000_000_000 isn't a valid nanosecondSource§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.
let format = format_description::parse_borrowed::<3>(
"[year]-[month]-[day] [hour]:[minute]:[second]"
)?;
assert_eq!(
datetime!(2020-01-02 03:04:05).format(&format)?,
"2020-01-02 03:04:05"
);Source§impl PlainDateTime
impl PlainDateTime
Sourcepub fn parse(
input: &str,
description: &(impl Parsable + ?Sized),
) -> Result<PlainDateTime, Parse>
Available on crate feature parsing only.
pub fn parse( input: &str, description: &(impl Parsable + ?Sized), ) -> Result<PlainDateTime, Parse>
parsing only.Parse a PlainDateTime from the input using the provided format
description.
let format = format_description!("[year]-[month]-[day] [hour]:[minute]:[second]");
assert_eq!(
PlainDateTime::parse("2020-01-02 03:04:05", &format)?,
datetime!(2020-01-02 03:04:05)
);Sourcepub fn parse_with_defaults(
input: &[u8],
description: &(impl Parsable + ?Sized),
defaults: Parsed,
) -> Result<PlainDateTime, Parse>
Available on crate feature parsing only.
pub fn parse_with_defaults( input: &[u8], description: &(impl Parsable + ?Sized), defaults: Parsed, ) -> Result<PlainDateTime, Parse>
parsing only.Parse a PlainDateTime from the input using the provided format
description and default values.
let format = format_description!("[year]-[month]-[day]");
let defaults = Parsed::new().with_hour_24(12).expect("12 is a valid hour");
assert_eq!(
PlainDateTime::parse_with_defaults(b"2020-01-02", &format, defaults)?,
datetime!(2020-01-02 12:00)
);Trait Implementations§
Source§impl Add<Duration> for PlainDateTime
impl Add<Duration> for PlainDateTime
Source§impl Add<SignedDuration> for PlainDateTime
impl Add<SignedDuration> for PlainDateTime
Source§fn add(
self,
duration: SignedDuration,
) -> <PlainDateTime as Add<SignedDuration>>::Output
fn add( self, duration: SignedDuration, ) -> <PlainDateTime as Add<SignedDuration>>::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: Duration)
fn add_assign(&mut self, duration: Duration)
§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 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 Display for PlainDateTime
impl Display for PlainDateTime
impl Eq for PlainDateTime
Source§impl Hash for PlainDateTime
impl Hash for PlainDateTime
Source§impl Ord for PlainDateTime
impl Ord for PlainDateTime
Source§fn cmp(&self, other: &PlainDateTime) -> Ordering
fn cmp(&self, other: &PlainDateTime) -> Ordering
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 SmartDisplay for PlainDateTime
impl SmartDisplay for PlainDateTime
Source§fn metadata(&self, _: FormatterOptions) -> Metadata<'_, PlainDateTime>
fn metadata(&self, _: FormatterOptions) -> Metadata<'_, PlainDateTime>
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Display::fmt. Read moreSource§fn fmt_with_metadata(
&self,
f: &mut Formatter<'_>,
_metadata: Metadata<'_, Self>,
) -> Result<(), Error>
fn fmt_with_metadata( &self, f: &mut Formatter<'_>, _metadata: Metadata<'_, Self>, ) -> Result<(), Error>
Source§impl Sub for PlainDateTime
impl Sub for PlainDateTime
Source§type Output = SignedDuration
type Output = SignedDuration
- operator.Source§fn sub(self, rhs: PlainDateTime) -> <PlainDateTime as Sub>::Output
fn sub(self, rhs: PlainDateTime) -> <PlainDateTime as Sub>::Output
- operation. Read moreSource§impl Sub<Duration> for PlainDateTime
impl Sub<Duration> for PlainDateTime
Source§impl Sub<SignedDuration> for PlainDateTime
impl Sub<SignedDuration> for PlainDateTime
Source§fn sub(
self,
duration: SignedDuration,
) -> <PlainDateTime as Sub<SignedDuration>>::Output
fn sub( self, duration: SignedDuration, ) -> <PlainDateTime as Sub<SignedDuration>>::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: Duration)
fn sub_assign(&mut self, duration: Duration)
§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.
Source§impl TryFrom<Parsed> for PlainDateTime
impl TryFrom<Parsed> for PlainDateTime
Source§type Error = TryFromParsed
type Error = TryFromParsed
Source§fn try_from(
parsed: Parsed,
) -> Result<PlainDateTime, <PlainDateTime as TryFrom<Parsed>>::Error>
fn try_from( parsed: Parsed, ) -> Result<PlainDateTime, <PlainDateTime as TryFrom<Parsed>>::Error>
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.