Struct time::Time [−][src]
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 Time
s, they are assumed to be in the same calendar date.
Implementations
impl Time
[src]
pub const MIDNIGHT: Self
[src]
Create a Time
that is exactly midnight.
assert_eq!(Time::MIDNIGHT, time!("0:00"));Run
pub const fn from_hms(
hour: u8,
minute: u8,
second: u8
) -> Result<Self, ComponentRange>
[src]
hour: u8,
minute: u8,
second: u8
) -> Result<Self, ComponentRange>
Attempt to create a Time
from the hour, minute, and second.
assert!(Time::from_hms(1, 2, 3).is_ok());Run
assert!(Time::from_hms(24, 0, 0).is_err()); // 24 isn't a valid hour. assert!(Time::from_hms(0, 60, 0).is_err()); // 60 isn't a valid minute. assert!(Time::from_hms(0, 0, 60).is_err()); // 60 isn't a valid second.Run
pub const fn from_hms_milli(
hour: u8,
minute: u8,
second: u8,
millisecond: u16
) -> Result<Self, ComponentRange>
[src]
hour: u8,
minute: u8,
second: u8,
millisecond: u16
) -> Result<Self, ComponentRange>
Attempt to create a Time
from the hour, minute, second, and millisecond.
assert!(Time::from_hms_milli(1, 2, 3, 4).is_ok());Run
assert!(Time::from_hms_milli(24, 0, 0, 0).is_err()); // 24 isn't a valid hour. assert!(Time::from_hms_milli(0, 60, 0, 0).is_err()); // 60 isn't a valid minute. assert!(Time::from_hms_milli(0, 0, 60, 0).is_err()); // 60 isn't a valid second. assert!(Time::from_hms_milli(0, 0, 0, 1_000).is_err()); // 1_000 isn't a valid millisecond.Run
pub const fn from_hms_micro(
hour: u8,
minute: u8,
second: u8,
microsecond: u32
) -> Result<Self, ComponentRange>
[src]
hour: u8,
minute: u8,
second: u8,
microsecond: u32
) -> Result<Self, ComponentRange>
Attempt to create a Time
from the hour, minute, second, and microsecond.
assert!(Time::from_hms_micro(1, 2, 3, 4).is_ok());Run
assert!(Time::from_hms_micro(24, 0, 0, 0).is_err()); // 24 isn't a valid hour. assert!(Time::from_hms_micro(0, 60, 0, 0).is_err()); // 60 isn't a valid minute. assert!(Time::from_hms_micro(0, 0, 60, 0).is_err()); // 60 isn't a valid second. assert!(Time::from_hms_micro(0, 0, 0, 1_000_000).is_err()); // 1_000_000 isn't a valid microsecond.Run
pub const fn from_hms_nano(
hour: u8,
minute: u8,
second: u8,
nanosecond: u32
) -> Result<Self, ComponentRange>
[src]
hour: u8,
minute: u8,
second: u8,
nanosecond: u32
) -> Result<Self, ComponentRange>
Attempt to create a Time
from the hour, minute, second, and nanosecond.
assert!(Time::from_hms_nano(1, 2, 3, 4).is_ok());Run
assert!(Time::from_hms_nano(24, 0, 0, 0).is_err()); // 24 isn't a valid hour. assert!(Time::from_hms_nano(0, 60, 0, 0).is_err()); // 60 isn't a valid minute. assert!(Time::from_hms_nano(0, 0, 60, 0).is_err()); // 60 isn't a valid second. assert!(Time::from_hms_nano(0, 0, 0, 1_000_000_000).is_err()); // 1_000_000_000 isn't a valid nanosecond.Run
pub const fn as_hms(self) -> (u8, u8, u8)
[src]
Get the clock hour, minute, and second.
assert_eq!(time!("0:00:00").as_hms(), (0, 0, 0)); assert_eq!(time!("23:59:59").as_hms(), (23, 59, 59));Run
pub const fn as_hms_milli(self) -> (u8, u8, u8, u16)
[src]
Get the clock hour, minute, second, and millisecond.
assert_eq!(time!("0:00:00").as_hms_milli(), (0, 0, 0, 0)); assert_eq!(time!("23:59:59.999").as_hms_milli(), (23, 59, 59, 999));Run
pub const fn as_hms_micro(self) -> (u8, u8, u8, u32)
[src]
Get the clock hour, minute, second, and microsecond.
assert_eq!(time!("0:00:00").as_hms_micro(), (0, 0, 0, 0)); assert_eq!( time!("23:59:59.999_999").as_hms_micro(), (23, 59, 59, 999_999) );Run
pub const fn as_hms_nano(self) -> (u8, u8, u8, u32)
[src]
Get the clock hour, minute, second, and nanosecond.
assert_eq!(time!("0:00:00").as_hms_nano(), (0, 0, 0, 0)); assert_eq!( time!("23:59:59.999_999_999").as_hms_nano(), (23, 59, 59, 999_999_999) );Run
pub const fn hour(self) -> u8
[src]
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);Run
pub const fn minute(self) -> u8
[src]
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);Run
pub const fn second(self) -> u8
[src]
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);Run
pub const fn millisecond(self) -> u16
[src]
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);Run
pub const fn microsecond(self) -> u32
[src]
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);Run
pub const fn nanosecond(self) -> u32
[src]
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);Run
impl Time
[src]
pub fn format_into(
self,
output: &mut impl Write,
format: &impl Formattable
) -> Result<usize, Format>
[src]
self,
output: &mut impl Write,
format: &impl Formattable
) -> Result<usize, Format>
formatting
only.Format the Time
using the provided format description. The formatted value will be output
to the provided writer. The format description will typically be parsed by using
format_description::parse
.
pub fn format(self, format: &impl Formattable) -> Result<String, Format>
[src]
formatting
only.Format the Time
using the provided format description. The format description will
typically be parsed by using
format_description::parse
.
let format = format_description::parse("[hour]:[minute]:[second]")?; assert_eq!(time!("12:00").format(&format)?, "12:00:00");Run
impl Time
[src]
pub fn parse(input: &str, description: &impl Parsable) -> Result<Self, Parse>
[src]
parsing
only.Parse a Time
from the input using the provided format description. The format description
will typically be parsed by using
format_description::parse
.
let format = format_description::parse("[hour]:[minute]:[second]")?; assert_eq!(Time::parse("12:00:00", &format)?, time!("12:00"));Run
Trait Implementations
impl Add<Duration> for Time
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, duration: Duration) -> Self::Output
[src]
impl Add<Duration> for Time
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, duration: StdDuration) -> Self::Output
[src]
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"));Run
impl<T> AddAssign<T> for Time where
Self: Add<T, Output = Self>,
[src]
Self: Add<T, Output = Self>,
fn add_assign(&mut self, rhs: T)
[src]
impl Arbitrary for Time
[src]
quickcheck
only.impl Clone for Time
[src]
impl Copy for Time
[src]
impl Debug for Time
[src]
impl<'a> Deserialize<'a> for Time
[src]
serde
only.fn deserialize<D: Deserializer<'a>>(deserializer: D) -> Result<Self, D::Error>
[src]
impl Display for Time
[src]
formatting
only.impl Eq for Time
[src]
impl Hash for Time
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for Time
[src]
fn cmp(&self, other: &Time) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Time> for Time
[src]
impl PartialOrd<Time> for Time
[src]
fn partial_cmp(&self, other: &Time) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl Serialize for Time
[src]
serde
only.impl StructuralEq for Time
[src]
impl StructuralPartialEq for Time
[src]
impl Sub<Duration> for Time
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, duration: Duration) -> Self::Output
[src]
impl Sub<Duration> for Time
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, duration: StdDuration) -> Self::Output
[src]
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"));Run
impl Sub<Time> for Time
[src]
type Output = Duration
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self::Output
[src]
Subtract two Time
s, returning the Duration
between. This assumes both Time
s 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());Run
impl<T> SubAssign<T> for Time where
Self: Sub<T, Output = Self>,
[src]
Self: Sub<T, Output = Self>,
fn sub_assign(&mut self, rhs: T)
[src]
impl TryFrom<Parsed> for Time
[src]
parsing
only.Auto Trait Implementations
impl RefUnwindSafe for Time
impl Send for Time
impl Sync for Time
impl Unpin for Time
impl UnwindSafe for Time
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,