Struct UtcDateTime

struct UtcDateTime { ... }

A PrimitiveDateTime that is known to be UTC.

UtcDateTime is guaranteed to be ABI-compatible with PrimitiveDateTime, meaning that transmuting from one to the other will not result in undefined behavior.

Implementations

impl UtcDateTime

const fn replace_time(self: Self, time: Time) -> Self

Replace the time, preserving the date.

# use time_macros::{utc_datetime, time};
assert_eq!(
    utc_datetime!(2020-01-01 17:00).replace_time(time!(5:00)),
    utc_datetime!(2020-01-01 5:00)
);
const fn replace_date(self: Self, date: Date) -> Self

Replace the date, preserving the time.

# use time_macros::{utc_datetime, date};
assert_eq!(
    utc_datetime!(2020-01-01 12:00).replace_date(date!(2020-01-30)),
    utc_datetime!(2020-01-30 12:00)
);
const fn replace_year(self: Self, year: i32) -> Result<Self, ComponentRange>

Replace the year. The month and day will be unchanged.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 12:00).replace_year(2019),
    Ok(utc_datetime!(2019-02-18 12:00))
);
assert!(utc_datetime!(2022-02-18 12:00).replace_year(-1_000_000_000).is_err()); // -1_000_000_000 isn't a valid year
assert!(utc_datetime!(2022-02-18 12:00).replace_year(1_000_000_000).is_err()); // 1_000_000_000 isn't a valid year
const fn replace_month(self: Self, month: Month) -> Result<Self, ComponentRange>

Replace the month of the year.

# use time_macros::utc_datetime;
# use time::Month;
assert_eq!(
    utc_datetime!(2022-02-18 12:00).replace_month(Month::January),
    Ok(utc_datetime!(2022-01-18 12:00))
);
assert!(utc_datetime!(2022-01-30 12:00).replace_month(Month::February).is_err()); // 30 isn't a valid day in February
const fn replace_day(self: Self, day: u8) -> Result<Self, ComponentRange>

Replace the day of the month.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 12:00).replace_day(1),
    Ok(utc_datetime!(2022-02-01 12:00))
);
assert!(utc_datetime!(2022-02-18 12:00).replace_day(0).is_err()); // 00 isn't a valid day
assert!(utc_datetime!(2022-02-18 12:00).replace_day(30).is_err()); // 30 isn't a valid day in February
const fn replace_ordinal(self: Self, ordinal: u16) -> Result<Self, ComponentRange>

Replace the day of the year.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2022-049 12:00).replace_ordinal(1), Ok(utc_datetime!(2022-001 12:00)));
assert!(utc_datetime!(2022-049 12:00).replace_ordinal(0).is_err()); // 0 isn't a valid ordinal
assert!(utc_datetime!(2022-049 12:00).replace_ordinal(366).is_err()); // 2022 isn't a leap year
const fn truncate_to_day(self: Self) -> Self

Truncate to the start of the day, setting the time to midnight.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_day(),
    utc_datetime!(2022-02-18 0:00)
);
const fn replace_hour(self: Self, hour: u8) -> Result<Self, ComponentRange>

Replace the clock hour.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_hour(7),
    Ok(utc_datetime!(2022-02-18 07:02:03.004_005_006))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_hour(24).is_err()); // 24 isn't a valid hour
const fn truncate_to_hour(self: Self) -> Self

Truncate to the hour, setting the minute, second, and subsecond components to zero.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_hour(),
    utc_datetime!(2022-02-18 15:00)
);
const fn replace_minute(self: Self, sunday_based_week: u8) -> Result<Self, ComponentRange>

Replace the minutes within the hour.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_minute(7),
    Ok(utc_datetime!(2022-02-18 01:07:03.004_005_006))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_minute(60).is_err()); // 60 isn't a valid minute
const fn truncate_to_minute(self: Self) -> Self

Truncate to the minute, setting the second and subsecond components to zero.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_minute(),
    utc_datetime!(2022-02-18 15:30)
);
const fn replace_second(self: Self, monday_based_week: u8) -> Result<Self, ComponentRange>

Replace the seconds within the minute.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_second(7),
    Ok(utc_datetime!(2022-02-18 01:02:07.004_005_006))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_second(60).is_err()); // 60 isn't a valid second
const fn truncate_to_second(self: Self) -> Self

Truncate to the second, setting the subsecond components to zero.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_second(),
    utc_datetime!(2022-02-18 15:30:45)
);
const fn replace_millisecond(self: Self, millisecond: u16) -> Result<Self, ComponentRange>

Replace the milliseconds within the second.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_millisecond(7),
    Ok(utc_datetime!(2022-02-18 01:02:03.007))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_millisecond(1_000).is_err()); // 1_000 isn't a valid millisecond
const fn truncate_to_millisecond(self: Self) -> Self

Truncate to the millisecond, setting the microsecond and nanosecond components to zero.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_millisecond(),
    utc_datetime!(2022-02-18 15:30:45.123)
);
const fn replace_microsecond(self: Self, microsecond: u32) -> Result<Self, ComponentRange>

Replace the microseconds within the second.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_microsecond(7_008),
    Ok(utc_datetime!(2022-02-18 01:02:03.007_008))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_microsecond(1_000_000).is_err()); // 1_000_000 isn't a valid microsecond
const fn truncate_to_microsecond(self: Self) -> Self

Truncate to the microsecond, setting the nanosecond component to zero.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 15:30:45.123_456_789).truncate_to_microsecond(),
    utc_datetime!(2022-02-18 15:30:45.123_456)
);
const fn replace_nanosecond(self: Self, nanosecond: u32) -> Result<Self, ComponentRange>

Replace the nanoseconds within the second.

# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_nanosecond(7_008_009),
    Ok(utc_datetime!(2022-02-18 01:02:03.007_008_009))
);
assert!(utc_datetime!(2022-02-18 01:02:03.004_005_006).replace_nanosecond(1_000_000_000).is_err()); // 1_000_000_000 isn't a valid nanosecond

impl UtcDateTime

fn now() -> Self

Create a new UtcDateTime with the current date and time.

# use time::UtcDateTime;
assert!(UtcDateTime::now().year() >= 2019);
const fn new(date: Date, time: Time) -> Self

Create a new UtcDateTime from the provided Date and Time.

# use time::UtcDateTime;
# use time_macros::{date, utc_datetime, time};
assert_eq!(
    UtcDateTime::new(date!(2019-01-01), time!(0:00)),
    utc_datetime!(2019-01-01 0:00),
);
const fn from_unix_timestamp(timestamp: i64) -> Result<Self, ComponentRange>

Create a UtcDateTime from the provided Unix timestamp.

# use time::UtcDateTime;
# use time_macros::utc_datetime;
assert_eq!(
    UtcDateTime::from_unix_timestamp(0),
    Ok(UtcDateTime::UNIX_EPOCH),
);
assert_eq!(
    UtcDateTime::from_unix_timestamp(1_546_300_800),
    Ok(utc_datetime!(2019-01-01 0:00)),
);

If you have a timestamp-nanosecond pair, you can use something along the lines of the following:

# use time::{Duration, UtcDateTime, ext::NumericalDuration};
let (timestamp, nanos) = (1, 500_000_000);
assert_eq!(
    UtcDateTime::from_unix_timestamp(timestamp)? + Duration::nanoseconds(nanos),
    UtcDateTime::UNIX_EPOCH + 1.5.seconds()
);
# Ok::<_, time::Error>(())
const fn from_unix_timestamp_nanos(timestamp: i128) -> Result<Self, ComponentRange>

Construct an UtcDateTime from the provided Unix timestamp (in nanoseconds).

# use time::UtcDateTime;
# use time_macros::utc_datetime;
assert_eq!(
    UtcDateTime::from_unix_timestamp_nanos(0),
    Ok(UtcDateTime::UNIX_EPOCH),
);
assert_eq!(
    UtcDateTime::from_unix_timestamp_nanos(1_546_300_800_000_000_000),
    Ok(utc_datetime!(2019-01-01 0:00)),
);
const fn to_offset(self: Self, offset: UtcOffset) -> OffsetDateTime

Convert the UtcDateTime from UTC to the provided UtcOffset, returning an OffsetDateTime.

# use time_macros::{utc_datetime, offset};
assert_eq!(
    utc_datetime!(2000-01-01 0:00)
        .to_offset(offset!(-1))
        .year(),
    1999,
);

// Construct midnight on new year's, UTC.
let utc = utc_datetime!(2000-01-01 0:00);
let new_york = utc.to_offset(offset!(-5));
let los_angeles = utc.to_offset(offset!(-8));
assert_eq!(utc.hour(), 0);
assert_eq!(new_york.hour(), 19);
assert_eq!(los_angeles.hour(), 16);

Panics

This method panics if the local date-time in the new offset is outside the supported range.

const fn checked_to_offset(self: Self, offset: UtcOffset) -> Option<OffsetDateTime>

Convert the UtcDateTime from UTC to the provided UtcOffset, returning an OffsetDateTime. None is returned if the date-time in the resulting offset is invalid.

# use time::UtcDateTime;
# use time_macros::{utc_datetime, offset};
assert_eq!(
    utc_datetime!(2000-01-01 0:00)
        .checked_to_offset(offset!(-1))
        .unwrap()
        .year(),
    1999,
);
assert_eq!(
    UtcDateTime::MAX.checked_to_offset(offset!(+1)),
    None,
);
const fn unix_timestamp(self: Self) -> i64

Get the Unix timestamp.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(1970-01-01 0:00).unix_timestamp(), 0);
assert_eq!(utc_datetime!(1970-01-01 1:00).unix_timestamp(), 3_600);
const fn unix_timestamp_nanos(self: Self) -> i128

Get the Unix timestamp in nanoseconds.

use time_macros::utc_datetime;
assert_eq!(utc_datetime!(1970-01-01 0:00).unix_timestamp_nanos(), 0);
assert_eq!(
    utc_datetime!(1970-01-01 1:00).unix_timestamp_nanos(),
    3_600_000_000_000,
);
const fn date(self: Self) -> Date

Get the Date component of the UtcDateTime.

# use time_macros::{date, utc_datetime};
assert_eq!(utc_datetime!(2019-01-01 0:00).date(), date!(2019-01-01));
const fn time(self: Self) -> Time

Get the Time component of the UtcDateTime.

# use time_macros::{utc_datetime, time};
assert_eq!(utc_datetime!(2019-01-01 0:00).time(), time!(0:00));
const fn year(self: Self) -> i32

Get the year of the date.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).year(), 2019);
assert_eq!(utc_datetime!(2019-12-31 0:00).year(), 2019);
assert_eq!(utc_datetime!(2020-01-01 0:00).year(), 2020);
const fn month(self: Self) -> Month

Get the month of the date.

# use time::Month;
# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).month(), Month::January);
assert_eq!(utc_datetime!(2019-12-31 0:00).month(), Month::December);
const fn day(self: Self) -> u8

Get the day of the date.

The returned value will always be in the range 1..=31.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).day(), 1);
assert_eq!(utc_datetime!(2019-12-31 0:00).day(), 31);
const fn ordinal(self: Self) -> u16

Get the day of the year.

The returned value will always be in the range 1..=366 (1..=365 for common years).

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).ordinal(), 1);
assert_eq!(utc_datetime!(2019-12-31 0:00).ordinal(), 365);
const fn iso_week(self: Self) -> u8

Get the ISO week number.

The returned value will always be in the range 1..=53.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).iso_week(), 1);
assert_eq!(utc_datetime!(2019-10-04 0:00).iso_week(), 40);
assert_eq!(utc_datetime!(2020-01-01 0:00).iso_week(), 1);
assert_eq!(utc_datetime!(2020-12-31 0:00).iso_week(), 53);
assert_eq!(utc_datetime!(2021-01-01 0:00).iso_week(), 53);
const fn sunday_based_week(self: 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.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).sunday_based_week(), 0);
assert_eq!(utc_datetime!(2020-01-01 0:00).sunday_based_week(), 0);
assert_eq!(utc_datetime!(2020-12-31 0:00).sunday_based_week(), 52);
assert_eq!(utc_datetime!(2021-01-01 0:00).sunday_based_week(), 0);
const fn monday_based_week(self: 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.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).monday_based_week(), 0);
assert_eq!(utc_datetime!(2020-01-01 0:00).monday_based_week(), 0);
assert_eq!(utc_datetime!(2020-12-31 0:00).monday_based_week(), 52);
assert_eq!(utc_datetime!(2021-01-01 0:00).monday_based_week(), 0);
const fn to_calendar_date(self: Self) -> (i32, Month, u8)

Get the year, month, and day.

# use time::Month;
# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2019-01-01 0:00).to_calendar_date(),
    (2019, Month::January, 1)
);
const fn to_ordinal_date(self: Self) -> (i32, u16)

Get the year and ordinal day number.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).to_ordinal_date(), (2019, 1));
const fn to_iso_week_date(self: Self) -> (i32, u8, Weekday)

Get the ISO 8601 year, week number, and weekday.

# use time::Weekday::*;
# use time_macros::utc_datetime;
assert_eq!(
    utc_datetime!(2019-01-01 0:00).to_iso_week_date(),
    (2019, 1, Tuesday)
);
assert_eq!(
    utc_datetime!(2019-10-04 0:00).to_iso_week_date(),
    (2019, 40, Friday)
);
assert_eq!(
    utc_datetime!(2020-01-01 0:00).to_iso_week_date(),
    (2020, 1, Wednesday)
);
assert_eq!(
    utc_datetime!(2020-12-31 0:00).to_iso_week_date(),
    (2020, 53, Thursday)
);
assert_eq!(
    utc_datetime!(2021-01-01 0:00).to_iso_week_date(),
    (2020, 53, Friday)
);
const fn weekday(self: Self) -> Weekday

Get the weekday.

# use time::Weekday::*;
# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).weekday(), Tuesday);
assert_eq!(utc_datetime!(2019-02-01 0:00).weekday(), Friday);
assert_eq!(utc_datetime!(2019-03-01 0:00).weekday(), Friday);
assert_eq!(utc_datetime!(2019-04-01 0:00).weekday(), Monday);
assert_eq!(utc_datetime!(2019-05-01 0:00).weekday(), Wednesday);
assert_eq!(utc_datetime!(2019-06-01 0:00).weekday(), Saturday);
assert_eq!(utc_datetime!(2019-07-01 0:00).weekday(), Monday);
assert_eq!(utc_datetime!(2019-08-01 0:00).weekday(), Thursday);
assert_eq!(utc_datetime!(2019-09-01 0:00).weekday(), Sunday);
assert_eq!(utc_datetime!(2019-10-01 0:00).weekday(), Tuesday);
assert_eq!(utc_datetime!(2019-11-01 0:00).weekday(), Friday);
assert_eq!(utc_datetime!(2019-12-01 0:00).weekday(), Sunday);
const fn to_julian_day(self: Self) -> i32

Get the Julian day for the date. The time is not taken into account for this calculation.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(-4713-11-24 0:00).to_julian_day(), 0);
assert_eq!(utc_datetime!(2000-01-01 0:00).to_julian_day(), 2_451_545);
assert_eq!(utc_datetime!(2019-01-01 0:00).to_julian_day(), 2_458_485);
assert_eq!(utc_datetime!(2019-12-31 0:00).to_julian_day(), 2_458_849);
const fn as_hms(self: Self) -> (u8, u8, u8)

Get the clock hour, minute, and second.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2020-01-01 0:00:00).as_hms(), (0, 0, 0));
assert_eq!(utc_datetime!(2020-01-01 23:59:59).as_hms(), (23, 59, 59));
const fn as_hms_milli(self: Self) -> (u8, u8, u8, u16)

Get the clock hour, minute, second, and millisecond.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2020-01-01 0:00:00).as_hms_milli(), (0, 0, 0, 0));
assert_eq!(
    utc_datetime!(2020-01-01 23:59:59.999).as_hms_milli(),
    (23, 59, 59, 999)
);
const fn as_hms_micro(self: Self) -> (u8, u8, u8, u32)

Get the clock hour, minute, second, and microsecond.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2020-01-01 0:00:00).as_hms_micro(), (0, 0, 0, 0));
assert_eq!(
    utc_datetime!(2020-01-01 23:59:59.999_999).as_hms_micro(),
    (23, 59, 59, 999_999)
);
const fn as_hms_nano(self: Self) -> (u8, u8, u8, u32)

Get the clock hour, minute, second, and nanosecond.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2020-01-01 0:00:00).as_hms_nano(), (0, 0, 0, 0));
assert_eq!(
    utc_datetime!(2020-01-01 23:59:59.999_999_999).as_hms_nano(),
    (23, 59, 59, 999_999_999)
);
const fn hour(self: Self) -> u8

Get the clock hour.

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

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).hour(), 0);
assert_eq!(utc_datetime!(2019-01-01 23:59:59).hour(), 23);
const fn minute(self: Self) -> u8

Get the minute within the hour.

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

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).minute(), 0);
assert_eq!(utc_datetime!(2019-01-01 23:59:59).minute(), 59);
const fn second(self: Self) -> u8

Get the second within the minute.

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

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).second(), 0);
assert_eq!(utc_datetime!(2019-01-01 23:59:59).second(), 59);
const fn millisecond(self: Self) -> u16

Get the milliseconds within the second.

The returned value will always be in the range 0..1_000.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).millisecond(), 0);
assert_eq!(utc_datetime!(2019-01-01 23:59:59.999).millisecond(), 999);
const fn microsecond(self: Self) -> u32

Get the microseconds within the second.

The returned value will always be in the range 0..1_000_000.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).microsecond(), 0);
assert_eq!(
    utc_datetime!(2019-01-01 23:59:59.999_999).microsecond(),
    999_999
);
const fn nanosecond(self: Self) -> u32

Get the nanoseconds within the second.

The returned value will always be in the range 0..1_000_000_000.

# use time_macros::utc_datetime;
assert_eq!(utc_datetime!(2019-01-01 0:00).nanosecond(), 0);
assert_eq!(
    utc_datetime!(2019-01-01 23:59:59.999_999_999).nanosecond(),
    999_999_999,
);
const fn checked_add(self: Self, duration: Duration) -> Option<Self>

Computes self + duration, returning None if an overflow occurred.

# use time::{UtcDateTime, ext::NumericalDuration};
# use time_macros::utc_datetime;
assert_eq!(UtcDateTime::MIN.checked_add((-2).days()), None);
assert_eq!(UtcDateTime::MAX.checked_add(1.days()), None);
assert_eq!(
    utc_datetime!(2019-11-25 15:30).checked_add(27.hours()),
    Some(utc_datetime!(2019-11-26 18:30))
);
const fn checked_sub(self: Self, duration: Duration) -> Option<Self>

Computes self - duration, returning None if an overflow occurred.

# use time::{UtcDateTime, ext::NumericalDuration};
# use time_macros::utc_datetime;
assert_eq!(UtcDateTime::MIN.checked_sub(2.days()), None);
assert_eq!(UtcDateTime::MAX.checked_sub((-1).days()), None);
assert_eq!(
    utc_datetime!(2019-11-25 15:30).checked_sub(27.hours()),
    Some(utc_datetime!(2019-11-24 12:30))
);
const fn saturating_add(self: Self, duration: Duration) -> Self

Computes self + duration, saturating value on overflow.

# use time::{UtcDateTime, ext::NumericalDuration};
# use time_macros::utc_datetime;
assert_eq!(
    UtcDateTime::MIN.saturating_add((-2).days()),
    UtcDateTime::MIN
);
assert_eq!(
    UtcDateTime::MAX.saturating_add(2.days()),
    UtcDateTime::MAX
);
assert_eq!(
    utc_datetime!(2019-11-25 15:30).saturating_add(27.hours()),
    utc_datetime!(2019-11-26 18:30)
);
const fn saturating_sub(self: Self, duration: Duration) -> Self

Computes self - duration, saturating value on overflow.

# use time::{UtcDateTime, ext::NumericalDuration};
# use time_macros::utc_datetime;
assert_eq!(
    UtcDateTime::MIN.saturating_sub(2.days()),
    UtcDateTime::MIN
);
assert_eq!(
    UtcDateTime::MAX.saturating_sub((-2).days()),
    UtcDateTime::MAX
);
assert_eq!(
    utc_datetime!(2019-11-25 15:30).saturating_sub(27.hours()),
    utc_datetime!(2019-11-24 12:30)
);

impl Add for UtcDateTime

fn add(self: Self, duration: StdDuration) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl Add for UtcDateTime

fn add(self: Self, duration: Duration) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl AddAssign for UtcDateTime

fn add_assign(self: &mut Self, rhs: StdDuration)

Panics

This may panic if an overflow occurs.

impl AddAssign for UtcDateTime

fn add_assign(self: &mut Self, rhs: Duration)

Panics

This may panic if an overflow occurs.

impl Clone for UtcDateTime

fn clone(self: &Self) -> UtcDateTime

impl Copy for UtcDateTime

impl Debug for UtcDateTime

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Display for UtcDateTime

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Eq for UtcDateTime

impl Freeze for UtcDateTime

impl From for UtcDateTime

fn from(system_time: SystemTime) -> Self

impl From for UtcDateTime

fn from(datetime: OffsetDateTime) -> Self

Panics

This may panic if an overflow occurs.

impl Hash for UtcDateTime

fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)

impl Ord for UtcDateTime

fn cmp(self: &Self, other: &UtcDateTime) -> Ordering

impl PartialEq for UtcDateTime

fn eq(self: &Self, rhs: &SystemTime) -> bool

impl PartialEq for UtcDateTime

fn eq(self: &Self, other: &OffsetDateTime) -> bool

impl PartialEq for UtcDateTime

fn eq(self: &Self, other: &UtcDateTime) -> bool

impl PartialOrd for UtcDateTime

fn partial_cmp(self: &Self, other: &UtcDateTime) -> Option<Ordering>

impl PartialOrd for UtcDateTime

fn partial_cmp(self: &Self, other: &OffsetDateTime) -> Option<Ordering>

impl PartialOrd for UtcDateTime

fn partial_cmp(self: &Self, other: &SystemTime) -> Option<Ordering>

impl RefUnwindSafe for UtcDateTime

impl Send for UtcDateTime

impl SmartDisplay for UtcDateTime

fn metadata(self: &Self, _: FormatterOptions) -> Metadata<'_, Self>
fn fmt_with_metadata(self: &Self, f: &mut Formatter<'_>, metadata: Metadata<'_, Self>) -> Result

impl StructuralPartialEq for UtcDateTime

impl Sub for UtcDateTime

fn sub(self: Self, rhs: OffsetDateTime) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl Sub for UtcDateTime

fn sub(self: Self, duration: StdDuration) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl Sub for UtcDateTime

fn sub(self: Self, rhs: Duration) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl Sub for UtcDateTime

fn sub(self: Self, rhs: Self) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl Sub for UtcDateTime

fn sub(self: Self, rhs: SystemTime) -> <Self as >::Output

Panics

This may panic if an overflow occurs.

impl SubAssign for UtcDateTime

fn sub_assign(self: &mut Self, rhs: StdDuration)

Panics

This may panic if an overflow occurs.

impl SubAssign for UtcDateTime

fn sub_assign(self: &mut Self, rhs: Duration)

Panics

This may panic if an overflow occurs.

impl Sync for UtcDateTime

impl Unpin for UtcDateTime

impl UnsafeUnpin for UtcDateTime

impl UnwindSafe for UtcDateTime

impl<T> Any for UtcDateTime

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for UtcDateTime

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for UtcDateTime

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for UtcDateTime

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for UtcDateTime

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for UtcDateTime

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> ToString for UtcDateTime

fn to_string(self: &Self) -> String

impl<T, U> Into for UtcDateTime

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for UtcDateTime

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for UtcDateTime

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>