Struct sqlx::types::time::Time[]

pub struct Time { /* fields omitted */ }

The clock time within a given date. Nanosecond precision.

All minutes are assumed to have exactly 60 seconds; no attempt is made to handle leap seconds (either positive or negative).

When comparing two Times, they are assumed to be in the same calendar date.

Implementations

impl Time

pub const fn midnight() -> Time

Create a Time that is exactly midnight.

assert_eq!(Time::midnight(), time!(0:00));

pub const fn try_from_hms(
    hour: u8,
    minute: u8,
    second: u8
) -> Result<Time, ComponentRange>

Attempt to create a Time from the hour, minute, and second.

assert!(Time::try_from_hms(1, 2, 3).is_ok());

Returns None if any component is not valid.

assert!(Time::try_from_hms(24, 0, 0).is_err()); // 24 isn't a valid hour.
assert!(Time::try_from_hms(0, 60, 0).is_err()); // 60 isn't a valid minute.
assert!(Time::try_from_hms(0, 0, 60).is_err()); // 60 isn't a valid second.

This function is const fn when using rustc >= 1.46.

pub const fn try_from_hms_milli(
    hour: u8,
    minute: u8,
    second: u8,
    millisecond: u16
) -> Result<Time, ComponentRange>

Attempt to create a Time from the hour, minute, second, and millisecond.

assert!(Time::try_from_hms_milli(1, 2, 3, 4).is_ok());

Returns None if any component is not valid.

assert!(Time::try_from_hms_milli(24, 0, 0, 0).is_err()); // 24 isn't a valid hour.
assert!(Time::try_from_hms_milli(0, 60, 0, 0).is_err()); // 60 isn't a valid minute.
assert!(Time::try_from_hms_milli(0, 0, 60, 0).is_err()); // 60 isn't a valid second.
assert!(Time::try_from_hms_milli(0, 0, 0, 1_000).is_err()); // 1_000 isn't a valid millisecond.

This function is const fn when using rustc >= 1.46.

pub const fn try_from_hms_micro(
    hour: u8,
    minute: u8,
    second: u8,
    microsecond: u32
) -> Result<Time, ComponentRange>

Attempt to create a Time from the hour, minute, second, and microsecond.

assert!(Time::try_from_hms_micro(1, 2, 3, 4).is_ok());

Returns None if any component is not valid.

assert!(Time::try_from_hms_micro(24, 0, 0, 0).is_err()); // 24 isn't a valid hour.
assert!(Time::try_from_hms_micro(0, 60, 0, 0).is_err()); // 60 isn't a valid minute.
assert!(Time::try_from_hms_micro(0, 0, 60, 0).is_err()); // 60 isn't a valid second.
assert!(Time::try_from_hms_micro(0, 0, 0, 1_000_000).is_err()); // 1_000_000 isn't a valid microsecond.

This function is const fn when using rustc >= 1.46.

pub const fn try_from_hms_nano(
    hour: u8,
    minute: u8,
    second: u8,
    nanosecond: u32
) -> Result<Time, ComponentRange>

Attempt to create a Time from the hour, minute, second, and nanosecond.

assert!(Time::try_from_hms_nano(1, 2, 3, 4).is_ok());

Returns None if any component is not valid.

assert!(Time::try_from_hms_nano(24, 0, 0, 0).is_err()); // 24 isn't a valid hour.
assert!(Time::try_from_hms_nano(0, 60, 0, 0).is_err()); // 60 isn't a valid minute.
assert!(Time::try_from_hms_nano(0, 0, 60, 0).is_err()); // 60 isn't a valid second.
assert!(Time::try_from_hms_nano(0, 0, 0, 1_000_000_000).is_err()); // 1_000_000_000 isn't a valid nanosecond.

This function is const fn when using rustc >= 1.46.

pub fn now() -> Time

👎 Deprecated since 0.2.7:

This method returns a value that assumes an offset of UTC.

Create a Time representing the current time (UTC).

println!("{:?}", Time::now());

pub const fn hour(self) -> u8

Get the clock hour.

The returned value will always be in the range 0..24.

assert_eq!(time!(0:00:00).hour(), 0);
assert_eq!(time!(23:59:59).hour(), 23);

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!(time!(0:00:00).minute(), 0);
assert_eq!(time!(23:59:59).minute(), 59);

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!(time!(0:00:00).second(), 0);
assert_eq!(time!(23:59:59).second(), 59);

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!(time!(0:00).millisecond(), 0);
assert_eq!(time!(23:59:59.999).millisecond(), 999);

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!(time!(0:00).microsecond(), 0);
assert_eq!(time!(23:59:59.999_999).microsecond(), 999_999);

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!(time!(0:00).nanosecond(), 0);
assert_eq!(time!(23:59:59.999_999_999).nanosecond(), 999_999_999);

impl Time

Methods that allow formatting the Time.

pub fn format(self, format: impl AsRef<str>) -> String

Format the Time using the provided string.

assert_eq!(time!(0:00).format("%r"), "12:00:00 am");

pub fn lazy_format(self, format: impl AsRef<str>) -> impl Display

Format the Time using the provided string.

assert_eq!(time!(0:00).lazy_format("%r").to_string(), "12:00:00 am");

pub fn parse(s: impl AsRef<str>, format: impl AsRef<str>) -> Result<Time, Error>

Attempt to parse a Time using the provided string.

assert_eq!(
    Time::parse("0:00:00", "%T"),
    Ok(time!(0:00))
);
assert_eq!(
    Time::parse("23:59:59", "%T"),
    Ok(time!(23:59:59))
);
assert_eq!(
    Time::parse("12:00:00 am", "%r"),
    Ok(time!(0:00))
);
assert_eq!(
    Time::parse("12:00:00 pm", "%r"),
    Ok(time!(12:00))
);
assert_eq!(
    Time::parse("11:59:59 pm", "%r"),
    Ok(time!(23:59:59))
);

Trait Implementations

impl Add<Duration> for Time

type Output = Time

The resulting type after applying the + operator.

pub fn add(self, duration: Duration) -> <Time as Add<Duration>>::Output

Add the sub-day time of the Duration to the Time. Wraps on overflow.

assert_eq!(time!(12:00) + 2.hours(), time!(14:00));
assert_eq!(time!(0:00:01) + (-2).seconds(), time!(23:59:59));

impl Add<Duration> for Time

type Output = Time

The resulting type after applying the + operator.

pub fn add(self, duration: Duration) -> <Time as Add<Duration>>::Output

Add the sub-day time of the std::time::Duration to the Time. Wraps on overflow.

assert_eq!(time!(12:00) + 2.std_hours(), time!(14:00));
assert_eq!(time!(23:59:59) + 2.std_seconds(), time!(0:00:01));

impl AddAssign<Duration> for Time

pub fn add_assign(&mut self, duration: Duration)

Add the sub-day time of the std::time::Duration to the existing Time. Wraps on overflow.

let mut time = time!(12:00);
time += 2.std_hours();
assert_eq!(time, time!(14:00));

let mut time = time!(23:59:59);
time += 2.std_seconds();
assert_eq!(time, time!(0:00:01));

impl AddAssign<Duration> for Time

pub fn add_assign(&mut self, duration: Duration)

Add the sub-day time of the Duration to the existing Time. Wraps on overflow.

let mut time = time!(12:00);
time += 2.hours();
assert_eq!(time, time!(14:00));

let mut time = time!(0:00:01);
time += (-2).seconds();
assert_eq!(time, time!(23:59:59));

impl Clone for Time

impl Copy for Time

impl Debug for Time

impl<'r> Decode<'r, MySql> for Time[src]

impl<'r> Decode<'r, Postgres> for Time[src]

impl Display for Time

impl<'_> Encode<'_, MySql> for Time[src]

impl<'_> Encode<'_, Postgres> for Time[src]

impl Eq for Time

impl Hash for Time

impl Ord for Time

impl PartialEq<Time> for Time

impl PartialOrd<Time> for Time

impl StructuralEq for Time

impl StructuralPartialEq for Time

impl Sub<Duration> for Time

type Output = Time

The resulting type after applying the - operator.

pub fn sub(self, duration: Duration) -> <Time as Sub<Duration>>::Output

Subtract the sub-day time of the std::time::Duration from the Time. Wraps on overflow.

assert_eq!(time!(14:00) - 2.std_hours(), time!(12:00));
assert_eq!(time!(0:00:01) - 2.std_seconds(), time!(23:59:59));

impl Sub<Duration> for Time

type Output = Time

The resulting type after applying the - operator.

pub fn sub(self, duration: Duration) -> <Time as Sub<Duration>>::Output

Subtract the sub-day time of the Duration from the Time. Wraps on overflow.

assert_eq!(
    time!(14:00) - 2.hours(),
    time!(12:00)
);
assert_eq!(
    time!(23:59:59) - (-2).seconds(),
    time!(0:00:01)
);

impl Sub<Time> for Time

type Output = Duration

The resulting type after applying the - operator.

pub fn sub(self, rhs: Time) -> <Time as Sub<Time>>::Output

Subtract two Times, returning the Duration between. This assumes both Times are in the same calendar day.

assert_eq!(time!(0:00) - time!(0:00), 0.seconds());
assert_eq!(time!(1:00) - time!(0:00), 1.hours());
assert_eq!(time!(0:00) - time!(1:00), (-1).hours());
assert_eq!(time!(0:00) - time!(23:00), (-23).hours());

impl SubAssign<Duration> for Time

pub fn sub_assign(&mut self, duration: Duration)

Subtract the sub-day time of the std::time::Duration from the existing Time. Wraps on overflow.

let mut time = time!(14:00);
time -= 2.std_hours();
assert_eq!(time, time!(12:00));

let mut time = time!(0:00:01);
time -= 2.std_seconds();
assert_eq!(time, time!(23:59:59));

impl SubAssign<Duration> for Time

pub fn sub_assign(&mut self, duration: Duration)

Subtract the sub-day time of the Duration from the existing Time. Wraps on overflow.

let mut time = time!(14:00);
time -= 2.hours();
assert_eq!(time, time!(12:00));

let mut time = time!(23:59:59);
time -= (-2).seconds();
assert_eq!(time, time!(0:00:01));

impl Type<MySql> for Time[src]

impl Type<Postgres> for Time[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CallHasher for T where
    T: Hash

impl<T> CallHasher for T where
    T: Hash + ?Sized

impl<T> Conv for T

impl<T> Conv for T

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> FmtForward for T

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pipe for T where
    T: ?Sized

impl<T> Pipe for T

impl<T> PipeAsRef for T

impl<T> PipeBorrow for T

impl<T> PipeDeref for T

impl<T> PipeRef for T

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Tap for T

impl<T> Tap for T

impl<T, U> TapAsRef<U> for T where
    U: ?Sized

impl<T, U> TapBorrow<U> for T where
    U: ?Sized

impl<T> TapDeref for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> TryConv for T

impl<T> TryConv for T

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,