Struct time::Time [−][src]
pub struct Time { /* fields omitted */ }
Expand description
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]
impl Time
[src]pub const fn midnight() -> Self
[src]
pub const fn midnight() -> Self
[src]Create a Time
that is exactly midnight.
assert_eq!(Time::midnight(), time!(0:00));
pub fn try_from_hms(
hour: u8,
minute: u8,
second: u8
) -> Result<Self, ComponentRangeError>
[src]
pub fn try_from_hms(
hour: u8,
minute: u8,
second: u8
) -> Result<Self, ComponentRangeError>
[src]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.
pub fn try_from_hms_milli(
hour: u8,
minute: u8,
second: u8,
millisecond: u16
) -> Result<Self, ComponentRangeError>
[src]
pub fn try_from_hms_milli(
hour: u8,
minute: u8,
second: u8,
millisecond: u16
) -> Result<Self, ComponentRangeError>
[src]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.
pub fn try_from_hms_micro(
hour: u8,
minute: u8,
second: u8,
microsecond: u32
) -> Result<Self, ComponentRangeError>
[src]
pub fn try_from_hms_micro(
hour: u8,
minute: u8,
second: u8,
microsecond: u32
) -> Result<Self, ComponentRangeError>
[src]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.
pub fn try_from_hms_nano(
hour: u8,
minute: u8,
second: u8,
nanosecond: u32
) -> Result<Self, ComponentRangeError>
[src]
pub fn try_from_hms_nano(
hour: u8,
minute: u8,
second: u8,
nanosecond: u32
) -> Result<Self, ComponentRangeError>
[src]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.
pub fn now() -> Self
[src]
This is supported on crate feature std
only.
pub fn now() -> Self
[src]std
only.Create a Time
representing the current time (UTC).
println!("{:?}", Time::now());
pub const fn hour(self) -> u8
[src]
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);
pub const fn minute(self) -> u8
[src]
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);
pub const fn second(self) -> u8
[src]
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);
pub const fn millisecond(self) -> u16
[src]
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);
pub const fn microsecond(self) -> u32
[src]
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);
pub const fn nanosecond(self) -> u32
[src]
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);
impl Time
[src]
impl Time
[src]Methods that allow formatting the Time
.
pub fn format(self, format: &str) -> String
[src]
pub fn format(self, format: &str) -> String
[src]Format the Time
using the provided string.
assert_eq!(time!(0:00).format("%r"), "12:00:00 am");
pub fn parse(s: &str, format: &str) -> Result<Self, ParseError>
[src]
pub fn parse(s: &str, format: &str) -> Result<Self, ParseError>
[src]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
[src]
impl Add<Duration> for Time
[src]fn add(self, duration: Duration) -> Self::Output
[src]
fn add(self, duration: Duration) -> Self::Output
[src]Add the sub-day time of the Duration
to the Time
. Wraps on overflow.
assert_eq!( time!(12:00) + Duration::hours(2), time!(14:00) ); assert_eq!( time!(0:00:01) + Duration::seconds(-2), time!(23:59:59) );
type Output = Self
type Output = Self
The resulting type after applying the +
operator.
impl Add<Duration> for Time
[src]
impl Add<Duration> for Time
[src]fn add(self, duration: StdDuration) -> Self::Output
[src]
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) + Duration::from_secs(2 * 3_600), time!(14:00) ); assert_eq!( time!(23:59:59) + Duration::from_secs(2), time!(0:00:01) );
type Output = Self
type Output = Self
The resulting type after applying the +
operator.
impl AddAssign<Duration> for Time
[src]
impl AddAssign<Duration> for Time
[src]fn add_assign(&mut self, duration: Duration)
[src]
fn add_assign(&mut self, duration: Duration)
[src]Add the sub-day time of the Duration
to the existing Time
. Wraps on
overflow.
let mut time = time!(12:00); time += Duration::hours(2); assert_eq!(time, time!(14:00)); let mut time = time!(0:00:01); time += Duration::seconds(-2); assert_eq!(time, time!(23:59:59));
impl AddAssign<Duration> for Time
[src]
impl AddAssign<Duration> for Time
[src]fn add_assign(&mut self, duration: StdDuration)
[src]
fn add_assign(&mut self, duration: StdDuration)
[src]Add the sub-day time of the std::time::Duration
to the existing
Time
. Wraps on overflow.
let mut time = time!(12:00); time += Duration::from_secs(2 * 3_600); assert_eq!(time, time!(14:00)); let mut time = time!(23:59:59); time += Duration::from_secs(2); assert_eq!(time, time!(0:00:01));
impl Ord for Time
[src]
impl Ord for Time
[src]impl PartialOrd<Time> for Time
[src]
impl PartialOrd<Time> for Time
[src]fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Sub<Duration> for Time
[src]
impl Sub<Duration> for Time
[src]fn sub(self, duration: Duration) -> Self::Output
[src]
fn sub(self, duration: Duration) -> Self::Output
[src]Subtract the sub-day time of the Duration
from the Time
. Wraps on
overflow.
assert_eq!( time!(14:00) - Duration::hours(2), time!(12:00) ); assert_eq!( time!(23:59:59) - Duration::seconds(-2), time!(0:00:01) );
type Output = Self
type Output = Self
The resulting type after applying the -
operator.
impl Sub<Duration> for Time
[src]
impl Sub<Duration> for Time
[src]fn sub(self, duration: StdDuration) -> Self::Output
[src]
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) - Duration::from_secs(2 * 3_600), time!(12:00) ); assert_eq!( time!(0:00:01) - Duration::from_secs(2), time!(23:59:59) );
type Output = Self
type Output = Self
The resulting type after applying the -
operator.
impl Sub<Time> for Time
[src]
impl Sub<Time> for Time
[src]fn sub(self, rhs: Self) -> Self::Output
[src]
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.
use time::{Duration, time}; assert_eq!( time!(0:00) - time!(0:00), Duration::zero() ); assert_eq!( time!(1:00) - time!(0:00), Duration::hour() ); assert_eq!( time!(0:00) - time!(1:00), Duration::hours(-1) ); assert_eq!( time!(0:00) - time!(23:00), Duration::hours(-23) );
impl SubAssign<Duration> for Time
[src]
impl SubAssign<Duration> for Time
[src]fn sub_assign(&mut self, duration: Duration)
[src]
fn sub_assign(&mut self, duration: Duration)
[src]Subtract the sub-day time of the Duration
from the existing Time
.
Wraps on overflow.
let mut time = time!(14:00); time -= Duration::hours(2); assert_eq!(time, time!(12:00)); let mut time = time!(23:59:59); time -= Duration::seconds(-2); assert_eq!(time, time!(0:00:01));
impl SubAssign<Duration> for Time
[src]
impl SubAssign<Duration> for Time
[src]fn sub_assign(&mut self, duration: StdDuration)
[src]
fn sub_assign(&mut self, duration: StdDuration)
[src]Subtract the sub-day time of the std::time::Duration
from the existing
Time
. Wraps on overflow.
let mut time = time!(14:00); time -= Duration::from_secs(2 * 3_600); assert_eq!(time, time!(12:00)); let mut time = time!(0:00:01); time -= Duration::from_secs(2); assert_eq!(time, time!(23:59:59));
impl Copy for Time
[src]
impl Eq for Time
[src]
impl StructuralEq for Time
[src]
impl StructuralPartialEq for Time
[src]
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> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more