Struct PrimitiveDateTime
pub struct PrimitiveDateTime { /* private fields */ }Expand description
Combined date and time.
Implementations§
Source§impl PrimitiveDateTime
impl PrimitiveDateTime
Sourcepub const MIN: PrimitiveDateTime
pub const MIN: PrimitiveDateTime
The smallest value that can be represented by PrimitiveDateTime.
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!(PrimitiveDateTime::MIN, datetime!(-9999-01-01 0:00));Sourcepub const MAX: PrimitiveDateTime
pub const MAX: PrimitiveDateTime
The largest value that can be represented by PrimitiveDateTime.
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!(PrimitiveDateTime::MAX, datetime!(+9999-12-31 23:59:59.999_999_999));Sourcepub const fn new(date: Date, time: Time) -> PrimitiveDateTime
pub const fn new(date: Date, time: Time) -> PrimitiveDateTime
Sourcepub const fn date(self) -> Date
pub const fn date(self) -> Date
Get the Date component of the PrimitiveDateTime.
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 PrimitiveDateTime.
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 PrimitiveDateTime 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 PrimitiveDateTime 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
PrimitiveDateTime::as_utc method.
Sourcepub const fn as_utc(self) -> UtcDateTime
pub const fn as_utc(self) -> UtcDateTime
Assuming that the existing PrimitiveDateTime 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: Duration) -> Option<PrimitiveDateTime>
pub const fn checked_add(self, duration: Duration) -> Option<PrimitiveDateTime>
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: Duration) -> Option<PrimitiveDateTime>
pub const fn checked_sub(self, duration: Duration) -> Option<PrimitiveDateTime>
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: Duration) -> PrimitiveDateTime
pub const fn saturating_add(self, duration: Duration) -> PrimitiveDateTime
Computes self + duration, saturating value on overflow.
assert_eq!(
PrimitiveDateTime::MIN.saturating_add((-2).days()),
PrimitiveDateTime::MIN
);
assert_eq!(
PrimitiveDateTime::MAX.saturating_add(2.days()),
PrimitiveDateTime::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: Duration) -> PrimitiveDateTime
pub const fn saturating_sub(self, duration: Duration) -> PrimitiveDateTime
Computes self - duration, saturating value on overflow.
assert_eq!(
PrimitiveDateTime::MIN.saturating_sub(2.days()),
PrimitiveDateTime::MIN
);
assert_eq!(
PrimitiveDateTime::MAX.saturating_sub((-2).days()),
PrimitiveDateTime::MAX
);
assert_eq!(
datetime!(2019-11-25 15:30).saturating_sub(27.hours()),
datetime!(2019-11-24 12:30)
);Source§impl PrimitiveDateTime
Methods that replace part of the PrimitiveDateTime.
impl PrimitiveDateTime
Methods that replace part of the PrimitiveDateTime.
Sourcepub const fn replace_time(self, time: Time) -> PrimitiveDateTime
pub const fn replace_time(self, time: Time) -> PrimitiveDateTime
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) -> PrimitiveDateTime
pub const fn replace_date(self, date: Date) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_year( self, year: i32, ) -> Result<PrimitiveDateTime, 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<PrimitiveDateTime, ComponentRange>
pub const fn replace_month( self, month: Month, ) -> Result<PrimitiveDateTime, 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<PrimitiveDateTime, ComponentRange>
pub const fn replace_day( self, day: u8, ) -> Result<PrimitiveDateTime, 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<PrimitiveDateTime, ComponentRange>
pub const fn replace_ordinal( self, ordinal: u16, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_day(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_hour( self, hour: u8, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_hour(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_minute( self, minute: u8, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_minute(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_second( self, second: u8, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_second(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_millisecond( self, millisecond: u16, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_millisecond(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_microsecond( self, microsecond: u32, ) -> Result<PrimitiveDateTime, 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) -> PrimitiveDateTime
pub const fn truncate_to_microsecond(self) -> PrimitiveDateTime
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<PrimitiveDateTime, ComponentRange>
pub const fn replace_nanosecond( self, nanosecond: u32, ) -> Result<PrimitiveDateTime, 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 PrimitiveDateTime
impl PrimitiveDateTime
Sourcepub fn format_into(
self,
output: &mut (impl Write + ?Sized),
format: &(impl Formattable + ?Sized),
) -> Result<usize, Format>
pub fn format_into( self, output: &mut (impl Write + ?Sized), format: &(impl Formattable + ?Sized), ) -> Result<usize, Format>
Format the PrimitiveDateTime using the provided format
description.
Sourcepub fn format(
self,
format: &(impl Formattable + ?Sized),
) -> Result<String, Format>
pub fn format( self, format: &(impl Formattable + ?Sized), ) -> Result<String, Format>
Format the PrimitiveDateTime using the provided format
description.
let format = format_description::parse("[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 PrimitiveDateTime
impl PrimitiveDateTime
Sourcepub fn parse(
input: &str,
description: &(impl Parsable + ?Sized),
) -> Result<PrimitiveDateTime, Parse>
pub fn parse( input: &str, description: &(impl Parsable + ?Sized), ) -> Result<PrimitiveDateTime, Parse>
Parse a PrimitiveDateTime from the input using the provided format
description.
let format = format_description!("[year]-[month]-[day] [hour]:[minute]:[second]");
assert_eq!(
PrimitiveDateTime::parse("2020-01-02 03:04:05", &format)?,
datetime!(2020-01-02 03:04:05)
);Trait Implementations§
Source§impl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
Source§impl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
Source§impl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
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<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
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 Clone for PrimitiveDateTime
impl Clone for PrimitiveDateTime
Source§fn clone(&self) -> PrimitiveDateTime
fn clone(&self) -> PrimitiveDateTime
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PrimitiveDateTime
impl Debug for PrimitiveDateTime
Source§impl<'a> Deserialize<'a> for PrimitiveDateTime
impl<'a> Deserialize<'a> for PrimitiveDateTime
Source§fn deserialize<D>(
deserializer: D,
) -> Result<PrimitiveDateTime, <D as Deserializer<'a>>::Error>where
D: Deserializer<'a>,
fn deserialize<D>(
deserializer: D,
) -> Result<PrimitiveDateTime, <D as Deserializer<'a>>::Error>where
D: Deserializer<'a>,
Source§impl Display for PrimitiveDateTime
impl Display for PrimitiveDateTime
§impl<'a> FromSql<'a> for PrimitiveDateTime
impl<'a> FromSql<'a> for PrimitiveDateTime
§fn from_sql(data: &'a ColumnData<'static>) -> Result<Option<Self>>
fn from_sql(data: &'a ColumnData<'static>) -> Result<Option<Self>>
None being a null value, copying the value.§impl FromSqlOwned for PrimitiveDateTime
impl FromSqlOwned for PrimitiveDateTime
§fn from_sql_owned(data: ColumnData<'static>) -> Result<Option<Self>>
fn from_sql_owned(data: ColumnData<'static>) -> Result<Option<Self>>
None being a null value, taking the ownership.Source§impl Hash for PrimitiveDateTime
impl Hash for PrimitiveDateTime
§impl<'a> IntoSql<'a> for PrimitiveDateTime
impl<'a> IntoSql<'a> for PrimitiveDateTime
§fn into_sql(self) -> ColumnData<'a>
fn into_sql(self) -> ColumnData<'a>
Source§impl Ord for PrimitiveDateTime
impl Ord for PrimitiveDateTime
Source§fn cmp(&self, other: &PrimitiveDateTime) -> Ordering
fn cmp(&self, other: &PrimitiveDateTime) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for PrimitiveDateTime
impl PartialEq for PrimitiveDateTime
Source§impl PartialOrd for PrimitiveDateTime
impl PartialOrd for PrimitiveDateTime
Source§impl Serialize for PrimitiveDateTime
impl Serialize for PrimitiveDateTime
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl SmartDisplay for PrimitiveDateTime
impl SmartDisplay for PrimitiveDateTime
Source§fn metadata(&self, _: FormatterOptions) -> Metadata<'_, PrimitiveDateTime>
fn metadata(&self, _: FormatterOptions) -> Metadata<'_, PrimitiveDateTime>
Source§fn fmt_with_metadata(
&self,
f: &mut Formatter<'_>,
metadata: Metadata<'_, PrimitiveDateTime>,
) -> Result<(), Error>
fn fmt_with_metadata( &self, f: &mut Formatter<'_>, metadata: Metadata<'_, PrimitiveDateTime>, ) -> Result<(), Error>
Source§impl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
Source§impl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
Source§impl Sub for PrimitiveDateTime
impl Sub for PrimitiveDateTime
Source§impl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
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<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
Source§fn sub_assign(&mut self, duration: Duration)
fn sub_assign(&mut self, duration: Duration)
§Panics
This may panic if an overflow occurs.