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
Create a Time
that is exactly midnight.
assert_eq!(Time::midnight(), time!(0:00));
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<Self, ComponentRange>
pub const fn try_from_hms_milli(
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::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<Self, ComponentRange>
pub const fn try_from_hms_micro(
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::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<Self, ComponentRange>
pub const fn try_from_hms_nano(
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::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.
👎 Deprecated since 0.2.7: This method returns a value that assumes an offset of UTC.
This method returns a value that assumes an offset of UTC.
Create a Time
representing the current time (UTC).
println!("{:?}", Time::now());
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);
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);
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);
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);
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);
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);
Methods that allow formatting the Time
.
Format the Time
using the provided string.
assert_eq!(time!(0:00).format("%r"), "12:00:00 am");
Format the Time
using the provided string.
assert_eq!(time!(0:00).lazy_format("%r").to_string(), "12:00:00 am");
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
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));
type Output = Self
type Output = Self
The resulting type after applying the +
operator.
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));
type Output = Self
type Output = Self
The resulting type after applying the +
operator.
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));
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));
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
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)
);
type Output = Self
type Output = Self
The resulting type after applying the -
operator.
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));
type Output = Self
type Output = Self
The resulting type after applying the -
operator.
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());
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));
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));
Auto Trait Implementations
impl RefUnwindSafe for Time
impl UnwindSafe for Time
Blanket Implementations
Mutably borrows from an owned value. Read more