Struct OffsetDateTime
struct OffsetDateTime { ... }
A PrimitiveDateTime with a UtcOffset.
Implementations
impl OffsetDateTime
const fn replace_time(self: Self, time: Time) -> SelfReplace the time, which is assumed to be in the stored offset. The date and offset components are unchanged.
# use ; assert_eq!; assert_eq!; assert_eq!;const fn replace_date(self: Self, date: Date) -> SelfReplace the date, which is assumed to be in the stored offset. The time and offset components are unchanged.
# use ; assert_eq!; assert_eq!;const fn replace_date_time(self: Self, date_time: PrimitiveDateTime) -> SelfReplace the date and time, which are assumed to be in the stored offset. The offset component remains unchanged.
# use datetime; assert_eq!; assert_eq!;const fn replace_offset(self: Self, offset: UtcOffset) -> SelfReplace the offset. The date and time components remain unchanged.
# use ; assert_eq!;const fn replace_year(self: Self, year: i32) -> Result<Self, ComponentRange>Replace the year. The month and day will be unchanged.
# use datetime; assert_eq!; assert!; // -1_000_000_000 isn't a valid year assert!; // 1_000_000_000 isn't a valid yearconst fn replace_month(self: Self, month: Month) -> Result<Self, ComponentRange>Replace the month of the year.
# use datetime; # use Month; assert_eq!; assert!; // 30 isn't a valid day in Februaryconst fn replace_day(self: Self, day: u8) -> Result<Self, ComponentRange>Replace the day of the month.
# use datetime; assert_eq!; assert!; // 00 isn't a valid day assert!; // 30 isn't a valid day in Februaryconst fn replace_ordinal(self: Self, ordinal: u16) -> Result<Self, ComponentRange>Replace the day of the year.
# use datetime; assert_eq!; assert!; // 0 isn't a valid ordinal assert!; // 2022 isn't a leap yearconst fn truncate_to_day(self: Self) -> SelfTruncate to the start of the day, setting the time to midnight.
# use datetime; assert_eq!;const fn replace_hour(self: Self, hour: u8) -> Result<Self, ComponentRange>Replace the clock hour.
# use datetime; assert_eq!; assert!; // 24 isn't a valid hourconst fn truncate_to_hour(self: Self) -> SelfTruncate to the hour, setting the minute, second, and subsecond components to zero.
# use datetime; assert_eq!;const fn replace_minute(self: Self, minute: u8) -> Result<Self, ComponentRange>Replace the minutes within the hour.
# use datetime; assert_eq!; assert!; // 60 isn't a valid minuteconst fn truncate_to_minute(self: Self) -> SelfTruncate to the minute, setting the second and subsecond components to zero.
# use datetime; assert_eq!;const fn replace_second(self: Self, second: u8) -> Result<Self, ComponentRange>Replace the seconds within the minute.
# use datetime; assert_eq!; assert!; // 60 isn't a valid secondconst fn truncate_to_second(self: Self) -> SelfTruncate to the second, setting the subsecond components to zero.
# use datetime; assert_eq!;const fn replace_millisecond(self: Self, millisecond: u16) -> Result<Self, ComponentRange>Replace the milliseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000 isn't a valid millisecondconst fn truncate_to_millisecond(self: Self) -> SelfTruncate to the millisecond, setting the microsecond and nanosecond components to zero.
# use datetime; assert_eq!;const fn replace_microsecond(self: Self, microsecond: u32) -> Result<Self, ComponentRange>Replace the microseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000_000 isn't a valid microsecondconst fn truncate_to_microsecond(self: Self) -> SelfTruncate to the microsecond, setting the nanosecond component to zero.
# use datetime; assert_eq!;const fn replace_nanosecond(self: Self, nanosecond: u32) -> Result<Self, ComponentRange>Replace the nanoseconds within the second.
# use datetime; assert_eq!; assert!; // 1_000_000_000 isn't a valid nanosecond
impl OffsetDateTime
fn now_utc() -> SelfCreate a new
OffsetDateTimewith the current date and time in UTC.# use OffsetDateTime; # use offset; assert!; assert_eq!;const fn new_in_offset(date: Date, time: Time, offset: UtcOffset) -> SelfCreate a new
OffsetDateTimewith the givenDate,Time, andUtcOffset.# use ; # use datetime; let dt = new_in_offset; assert_eq!; # Ok::const fn new_utc(date: Date, time: Time) -> SelfCreate a new
OffsetDateTimewith the givenDateandTimein the UTC timezone.# use ; # use datetime; let dt = new_utc; assert_eq!; # Ok::const fn to_offset(self: Self, offset: UtcOffset) -> SelfConvert the
OffsetDateTimefrom the currentUtcOffsetto the providedUtcOffset.# use ; assert_eq!; // Let's see what time Sydney's new year's celebration is in New York and Los Angeles. // Construct midnight on new year's in Sydney. let sydney = datetime!; let new_york = sydney.to_offset; let los_angeles = sydney.to_offset; assert_eq!; assert_eq!; assert_eq!;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<Self>Convert the
OffsetDateTimefrom the currentUtcOffsetto the providedUtcOffset, returningNoneif the date-time in the resulting offset is invalid.# use PrimitiveDateTime; # use ; assert_eq!; assert_eq!;const fn to_utc(self: Self) -> UtcDateTimeConvert the
OffsetDateTimefrom the currentUtcOffsetto UTC, returning aUtcDateTime.# use datetime; assert_eq!;Panics
This method panics if the UTC date-time is outside the supported range.
const fn checked_to_utc(self: Self) -> Option<UtcDateTime>Convert the
OffsetDateTimefrom the currentUtcOffsetto UTC, returningNoneif the UTC date-time is invalid. Returns aUtcDateTime.# use datetime; assert_eq!; assert_eq!;const fn from_unix_timestamp(timestamp: i64) -> Result<Self, ComponentRange>Create an
OffsetDateTimefrom the provided Unix timestamp. Calling.offset()on the resulting value is guaranteed to return UTC.# use OffsetDateTime; # use datetime; assert_eq!; assert_eq!;If you have a timestamp-nanosecond pair, you can use something along the lines of the following:
# use ; let = ; assert_eq!; # Ok::const fn from_unix_timestamp_nanos(timestamp: i128) -> Result<Self, ComponentRange>Construct an
OffsetDateTimefrom the provided Unix timestamp (in nanoseconds). Calling.offset()on the resulting value is guaranteed to return UTC.# use OffsetDateTime; # use datetime; assert_eq!; assert_eq!;const fn offset(self: Self) -> UtcOffsetGet the
UtcOffset.# use ; assert_eq!; assert_eq!;const fn unix_timestamp(self: Self) -> i64Get the Unix timestamp.
# use datetime; assert_eq!; assert_eq!;const fn unix_timestamp_nanos(self: Self) -> i128Get the Unix timestamp in nanoseconds.
use datetime; assert_eq!; assert_eq!;const fn date(self: Self) -> DateGet the
Datein the stored offset.# use ; assert_eq!; assert_eq!;const fn time(self: Self) -> TimeGet the
Timein the stored offset.# use ; assert_eq!; assert_eq!;const fn year(self: Self) -> i32Get the year of the date in the stored offset.
# use ; assert_eq!; assert_eq!; assert_eq!;const fn month(self: Self) -> MonthGet the month of the date in the stored offset.
# use Month; # use ; assert_eq!; assert_eq!;const fn day(self: Self) -> u8Get the day of the date in the stored offset.
The returned value will always be in the range
1..=31.# use ; assert_eq!; assert_eq!;const fn ordinal(self: Self) -> u16Get the day of the year of the date in the stored offset.
The returned value will always be in the range
1..=366.# use ; assert_eq!; assert_eq!;const fn iso_week(self: Self) -> u8Get the ISO week number of the date in the stored offset.
The returned value will always be in the range
1..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn sunday_based_week(self: Self) -> u8Get the week number where week 1 begins on the first Sunday.
The returned value will always be in the range
0..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn monday_based_week(self: Self) -> u8Get the week number where week 1 begins on the first Monday.
The returned value will always be in the range
0..=53.# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn to_calendar_date(self: Self) -> (i32, Month, u8)Get the year, month, and day.
# use Month; # use datetime; assert_eq!;const fn to_ordinal_date(self: Self) -> (i32, u16)Get the year and ordinal day number.
# use datetime; assert_eq!;const fn to_iso_week_date(self: Self) -> (i32, u8, Weekday)Get the ISO 8601 year, week number, and weekday.
# use *; # use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn weekday(self: Self) -> WeekdayGet the weekday of the date in the stored offset.
# use *; # use datetime; assert_eq!; assert_eq!; assert_eq!;const fn to_julian_day(self: Self) -> i32Get the Julian day for the date. The time is not taken into account for this calculation.
# use datetime; assert_eq!; assert_eq!; assert_eq!; assert_eq!;const fn to_hms(self: Self) -> (u8, u8, u8)Get the clock hour, minute, and second.
# use datetime; assert_eq!; assert_eq!;const fn to_hms_milli(self: Self) -> (u8, u8, u8, u16)Get the clock hour, minute, second, and millisecond.
# use datetime; assert_eq!; assert_eq!;const fn to_hms_micro(self: Self) -> (u8, u8, u8, u32)Get the clock hour, minute, second, and microsecond.
# use datetime; assert_eq!; assert_eq!;const fn to_hms_nano(self: Self) -> (u8, u8, u8, u32)Get the clock hour, minute, second, and nanosecond.
# use datetime; assert_eq!; assert_eq!;const fn hour(self: Self) -> u8Get the clock hour in the stored offset.
The returned value will always be in the range
0..24.# use ; assert_eq!; assert_eq!;const fn minute(self: Self) -> u8Get the minute within the hour in the stored offset.
The returned value will always be in the range
0..60.# use ; assert_eq!; assert_eq!;const fn second(self: Self) -> u8Get the second within the minute in the stored offset.
The returned value will always be in the range
0..60.# use ; assert_eq!; assert_eq!;const fn millisecond(self: Self) -> u16Get the milliseconds within the second in the stored offset.
The returned value will always be in the range
0..1_000.# use datetime; assert_eq!; assert_eq!;const fn microsecond(self: Self) -> u32Get the microseconds within the second in the stored offset.
The returned value will always be in the range
0..1_000_000.# use datetime; assert_eq!; assert_eq!;const fn nanosecond(self: Self) -> u32Get the nanoseconds within the second in the stored offset.
The returned value will always be in the range
0..1_000_000_000.# use datetime; assert_eq!; assert_eq!;const fn checked_add(self: Self, duration: Duration) -> Option<Self>Computes
self + duration, returningNoneif an overflow occurred.# use ; # use ; let datetime = MIN.midnight.assume_offset; assert_eq!; let datetime = MAX.midnight.assume_offset; assert_eq!; assert_eq!;const fn checked_sub(self: Self, duration: Duration) -> Option<Self>Computes
self - duration, returningNoneif an overflow occurred.# use ; # use ; let datetime = MIN.midnight.assume_offset; assert_eq!; let datetime = MAX.midnight.assume_offset; assert_eq!; assert_eq!;const fn saturating_add(self: Self, duration: Duration) -> SelfComputes
self + duration, saturating value on overflow.# use NumericalDuration; # use datetime; assert_eq!; assert_eq!; assert_eq!;const fn saturating_sub(self: Self, duration: Duration) -> SelfComputes
self - duration, saturating value on overflow.# use NumericalDuration; # use datetime; assert_eq!; assert_eq!; assert_eq!;
impl Add for OffsetDateTime
fn add(self: Self, duration: StdDuration) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl Add for OffsetDateTime
fn add(self: Self, duration: Duration) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl AddAssign for OffsetDateTime
fn add_assign(self: &mut Self, rhs: StdDuration)Panics
This may panic if an overflow occurs.
impl AddAssign for OffsetDateTime
fn add_assign(self: &mut Self, rhs: Duration)Panics
This may panic if an overflow occurs.
impl Clone for OffsetDateTime
fn clone(self: &Self) -> OffsetDateTime
impl Copy for OffsetDateTime
impl Debug for OffsetDateTime
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Display for OffsetDateTime
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for OffsetDateTime
impl Freeze for OffsetDateTime
impl From for OffsetDateTime
fn from(system_time: SystemTime) -> Self
impl From for OffsetDateTime
fn from(datetime: UtcDateTime) -> SelfPanics
This may panic if an overflow occurs.
impl Hash for OffsetDateTime
fn hash<H>(self: &Self, state: &mut H) where H: Hasher
impl Ord for OffsetDateTime
fn cmp(self: &Self, other: &Self) -> Ordering
impl PartialEq for OffsetDateTime
fn eq(self: &Self, other: &Self) -> bool
impl PartialEq for OffsetDateTime
fn eq(self: &Self, other: &UtcDateTime) -> bool
impl PartialEq for OffsetDateTime
fn eq(self: &Self, rhs: &SystemTime) -> bool
impl PartialOrd for OffsetDateTime
fn partial_cmp(self: &Self, other: &SystemTime) -> Option<Ordering>
impl PartialOrd for OffsetDateTime
fn partial_cmp(self: &Self, other: &UtcDateTime) -> Option<Ordering>
impl PartialOrd for OffsetDateTime
fn partial_cmp(self: &Self, other: &Self) -> Option<Ordering>
impl RefUnwindSafe for OffsetDateTime
impl Send for OffsetDateTime
impl SmartDisplay for OffsetDateTime
fn metadata(self: &Self, _: FormatterOptions) -> Metadata<'_, Self>fn fmt_with_metadata(self: &Self, f: &mut Formatter<'_>, metadata: Metadata<'_, Self>) -> Result
impl Sub for OffsetDateTime
fn sub(self: Self, duration: StdDuration) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl Sub for OffsetDateTime
fn sub(self: Self, rhs: Self) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl Sub for OffsetDateTime
fn sub(self: Self, rhs: Duration) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl Sub for OffsetDateTime
fn sub(self: Self, rhs: UtcDateTime) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl Sub for OffsetDateTime
fn sub(self: Self, rhs: SystemTime) -> <Self as >::OutputPanics
This may panic if an overflow occurs.
impl SubAssign for OffsetDateTime
fn sub_assign(self: &mut Self, rhs: StdDuration)Panics
This may panic if an overflow occurs.
impl SubAssign for OffsetDateTime
fn sub_assign(self: &mut Self, rhs: Duration)Panics
This may panic if an overflow occurs.
impl Sync for OffsetDateTime
impl Unpin for OffsetDateTime
impl UnsafeUnpin for OffsetDateTime
impl UnwindSafe for OffsetDateTime
impl<T> Any for OffsetDateTime
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for OffsetDateTime
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for OffsetDateTime
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for OffsetDateTime
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for OffsetDateTime
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for OffsetDateTime
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T> ToString for OffsetDateTime
fn to_string(self: &Self) -> String
impl<T, U> Into for OffsetDateTime
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for OffsetDateTime
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for OffsetDateTime
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>