Struct sqlx::types::time::PrimitiveDateTime [−]
pub struct PrimitiveDateTime { /* fields omitted */ }
Expand description
Combined date and time.
Implementations
impl PrimitiveDateTime
impl PrimitiveDateTime
pub const fn new(date: Date, time: Time) -> PrimitiveDateTime
pub const fn new(date: Date, time: Time) -> PrimitiveDateTime
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(),
);
pub fn now() -> PrimitiveDateTime
๐ Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
pub fn now() -> PrimitiveDateTime
This method returns a value that assumes an offset of UTC.
Create a new PrimitiveDateTime
with the current date and time (UTC).
assert!(PrimitiveDateTime::now().year() >= 2019);
pub const fn unix_epoch() -> PrimitiveDateTime
๐ Deprecated since 0.2.7: This method assumes an offset of UTC.
pub const fn unix_epoch() -> PrimitiveDateTime
This method assumes an offset of UTC.
Midnight, 1 January, 1970 (UTC).
assert_eq!(
PrimitiveDateTime::unix_epoch(),
date!(1970-01-01).midnight()
);
pub fn from_unix_timestamp(timestamp: i64) -> PrimitiveDateTime
๐ Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
pub fn from_unix_timestamp(timestamp: i64) -> PrimitiveDateTime
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.
pub const fn iso_year_week(self) -> (i32, u8)
pub const fn iso_year_week(self) -> (i32, u8)
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.
pub 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!(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.
pub 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!(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.
pub fn weekday(self) -> Weekday
pub fn weekday(self) -> Weekday
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);
pub 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!(date!(2019-01-01).midnight().millisecond(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59.999)).millisecond(), 999);
pub 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!(date!(2019-01-01).midnight().microsecond(), 0);
assert_eq!(date!(2019-01-01).with_time(time!(23:59:59.999_999)).microsecond(), 999_999);
pub 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!(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,
);
pub const fn using_offset(self, offset: UtcOffset) -> OffsetDateTime
๐ 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.
pub const fn using_offset(self, offset: UtcOffset) -> OffsetDateTime
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)
.
pub fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
pub fn assume_offset(self, offset: UtcOffset) -> OffsetDateTime
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,
);
pub const fn assume_utc(self) -> OffsetDateTime
pub const fn assume_utc(self) -> OffsetDateTime
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.
impl PrimitiveDateTime
impl PrimitiveDateTime
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"
);
pub fn lazy_format(self, format: impl AsRef<str>) -> impl Display
pub fn lazy_format(self, format: impl AsRef<str>) -> impl Display
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
impl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
type Output = PrimitiveDateTime
type Output = PrimitiveDateTime
The resulting type after applying the +
operator.
impl Add<Duration> for PrimitiveDateTime
impl Add<Duration> for PrimitiveDateTime
type Output = PrimitiveDateTime
type Output = PrimitiveDateTime
The resulting type after applying the +
operator.
pub fn add(
self,
duration: Duration
) -> <PrimitiveDateTime as Add<Duration>>::Output
pub fn add(
self,
duration: Duration
) -> <PrimitiveDateTime as Add<Duration>>::Output
Performs the +
operation. Read more
impl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
pub fn add_assign(&mut self, duration: Duration)
pub fn add_assign(&mut self, duration: Duration)
Performs the +=
operation. Read more
impl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for PrimitiveDateTime
pub fn add_assign(&mut self, duration: Duration)
pub fn add_assign(&mut self, duration: Duration)
Performs the +=
operation. Read more
impl Clone for PrimitiveDateTime
impl Clone for PrimitiveDateTime
pub fn clone(&self) -> PrimitiveDateTime
pub fn clone(&self) -> PrimitiveDateTime
Returns a copy of the value. Read more
Performs copy-assignment from source
. Read more
impl Debug for PrimitiveDateTime
impl Debug for PrimitiveDateTime
pub fn decode(
value: MySqlValueRef<'r>
) -> Result<PrimitiveDateTime, Box<dyn Error + Send + Sync + 'static, Global>>
pub fn decode(
value: MySqlValueRef<'r>
) -> Result<PrimitiveDateTime, Box<dyn Error + Send + Sync + 'static, Global>>
Decode a new value of this type using a raw value from the database.
pub fn decode(
value: PgValueRef<'r>
) -> Result<PrimitiveDateTime, Box<dyn Error + Send + Sync + 'static, Global>>
pub fn decode(
value: PgValueRef<'r>
) -> Result<PrimitiveDateTime, Box<dyn Error + Send + Sync + 'static, Global>>
Decode a new value of this type using a raw value from the database.
impl Display for PrimitiveDateTime
impl Display for PrimitiveDateTime
Writes the value of self
into buf
without moving self
. Read more
Writes the value of self
into buf
in the expected format for the database.
Writes the value of self
into buf
without moving self
. Read more
Writes the value of self
into buf
in the expected format for the database.
impl From<SystemTime> for PrimitiveDateTime
impl From<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it returns a value that assumes an offset of UTC.
pub fn from(system_time: SystemTime) -> PrimitiveDateTime
pub fn from(system_time: SystemTime) -> PrimitiveDateTime
Performs the conversion.
impl Hash for PrimitiveDateTime
impl Hash for PrimitiveDateTime
impl Ord for PrimitiveDateTime
impl Ord for PrimitiveDateTime
pub fn cmp(&self, other: &PrimitiveDateTime) -> Ordering
pub fn cmp(&self, other: &PrimitiveDateTime) -> Ordering
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
impl PartialEq<PrimitiveDateTime> for PrimitiveDateTime
impl PartialEq<PrimitiveDateTime> for PrimitiveDateTime
pub fn eq(&self, other: &PrimitiveDateTime) -> bool
pub fn eq(&self, other: &PrimitiveDateTime) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
pub fn ne(&self, other: &PrimitiveDateTime) -> bool
pub fn ne(&self, other: &PrimitiveDateTime) -> bool
This method tests for !=
.
impl PartialEq<SystemTime> for PrimitiveDateTime
impl PartialEq<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
impl PartialOrd<PrimitiveDateTime> for PrimitiveDateTime
impl PartialOrd<PrimitiveDateTime> for PrimitiveDateTime
pub fn partial_cmp(&self, other: &PrimitiveDateTime) -> Option<Ordering>
pub fn partial_cmp(&self, other: &PrimitiveDateTime) -> Option<Ordering>
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
impl PartialOrd<SystemTime> for PrimitiveDateTime
impl PartialOrd<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
pub fn partial_cmp(&self, other: &SystemTime) -> Option<Ordering>
pub fn partial_cmp(&self, other: &SystemTime) -> Option<Ordering>
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
impl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
type Output = PrimitiveDateTime
type Output = PrimitiveDateTime
The resulting type after applying the -
operator.
impl Sub<Duration> for PrimitiveDateTime
impl Sub<Duration> for PrimitiveDateTime
type Output = PrimitiveDateTime
type Output = PrimitiveDateTime
The resulting type after applying the -
operator.
pub fn sub(
self,
duration: Duration
) -> <PrimitiveDateTime as Sub<Duration>>::Output
pub fn sub(
self,
duration: Duration
) -> <PrimitiveDateTime as Sub<Duration>>::Output
Performs the -
operation. Read more
impl Sub<PrimitiveDateTime> for PrimitiveDateTime
impl Sub<PrimitiveDateTime> for PrimitiveDateTime
type Output = Duration
type Output = Duration
The resulting type after applying the -
operator.
pub fn sub(
self,
rhs: PrimitiveDateTime
) -> <PrimitiveDateTime as Sub<PrimitiveDateTime>>::Output
pub fn sub(
self,
rhs: PrimitiveDateTime
) -> <PrimitiveDateTime as Sub<PrimitiveDateTime>>::Output
Performs the -
operation. Read more
impl Sub<SystemTime> for PrimitiveDateTime
impl Sub<SystemTime> for PrimitiveDateTime
Deprecated since v0.2.7, as it assumes an offset of UTC.
type Output = Duration
type Output = Duration
The resulting type after applying the -
operator.
pub fn sub(
self,
rhs: SystemTime
) -> <PrimitiveDateTime as Sub<SystemTime>>::Output
pub fn sub(
self,
rhs: SystemTime
) -> <PrimitiveDateTime as Sub<SystemTime>>::Output
Performs the -
operation. Read more
impl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
pub fn sub_assign(&mut self, duration: Duration)
pub fn sub_assign(&mut self, duration: Duration)
Performs the -=
operation. Read more
impl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for PrimitiveDateTime
pub fn sub_assign(&mut self, duration: Duration)
pub fn sub_assign(&mut self, duration: Duration)
Performs the -=
operation. Read more
Returns the canonical SQL type for this Rust type. Read more
Returns the canonical SQL type for this Rust type. Read more
impl Copy for PrimitiveDateTime
impl Eq for PrimitiveDateTime
impl StructuralEq for PrimitiveDateTime
impl StructuralPartialEq for PrimitiveDateTime
Auto Trait Implementations
impl RefUnwindSafe for PrimitiveDateTime
impl Send for PrimitiveDateTime
impl Sync for PrimitiveDateTime
impl Unpin for PrimitiveDateTime
impl UnwindSafe for PrimitiveDateTime
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.