[−][src]Struct time::OffsetDateTime
A [PrimitiveDateTime
] with a [UtcOffset
].
All comparisons are performed using the UTC time.
Implementations
impl OffsetDateTime
[src]
pub fn now() -> Self
[src]
This function returns a value with an offset of UTC, which is not apparent from its name alone. You should use OffsetDateTime::now_utc()
instead.
Create a new OffsetDateTime
with the current date and time in UTC.
assert!(OffsetDateTime::now().year() >= 2019); assert_eq!(OffsetDateTime::now().offset(), offset!(UTC));
pub fn now_utc() -> Self
[src]
Create a new OffsetDateTime
with the current date and time in UTC.
assert!(OffsetDateTime::now_utc().year() >= 2019); assert_eq!(OffsetDateTime::now_utc().offset(), offset!(UTC));
pub fn now_local() -> Self
[src]
Create a new OffsetDateTime
with the current date and time in the
local offset.
assert!(OffsetDateTime::now_local().year() >= 2019);
pub fn try_now_local() -> Result<Self, IndeterminateOffsetError>
[src]
Attempt to create a new OffsetDateTime
with the current date and time
in the local offset. If the offset cannot be determined, an error is
returned.
assert!(OffsetDateTime::try_now_local().is_ok());
pub const fn to_offset(self, offset: UtcOffset) -> Self
[src]
Convert the OffsetDateTime
from the current UtcOffset
to the
provided UtcOffset
.
assert_eq!( date!(2000-01-01) .midnight() .assume_utc() .to_offset(offset!(-1)) .year(), 1999, ); // 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. This is equivalent to // 13:00 UTC. let sydney = date!(2000-01-01).midnight().assume_offset(offset!(+11)); let new_york = sydney.to_offset(offset!(-5)); let los_angeles = sydney.to_offset(offset!(-8)); assert_eq!(sydney.hour(), 0); assert_eq!(new_york.hour(), 8); assert_eq!(los_angeles.hour(), 5);
pub const fn unix_epoch() -> Self
[src]
Midnight, 1 January, 1970 (UTC).
assert_eq!( OffsetDateTime::unix_epoch(), date!(1970-01-01) .midnight() .assume_utc(), );
pub fn from_unix_timestamp(timestamp: i64) -> Self
[src]
Create an OffsetDateTime
from the provided Unix timestamp.
assert_eq!( OffsetDateTime::from_unix_timestamp(0), OffsetDateTime::unix_epoch(), ); assert_eq!( OffsetDateTime::from_unix_timestamp(1_546_300_800), date!(2019-01-01) .midnight() .assume_utc(), );
pub const fn offset(self) -> UtcOffset
[src]
Get the UtcOffset
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .offset(), offset!(UTC), ); assert_eq!( date!(2019-01-01) .midnight() .assume_offset(offset!(+1)) .offset(), offset!(+1), );
pub fn timestamp(self) -> i64
[src]
Get the Unix timestamp.
assert_eq!( PrimitiveDateTime::unix_epoch() .assume_utc() .timestamp(), 0, ); assert_eq!( PrimitiveDateTime::unix_epoch() .assume_utc() .to_offset(offset!(-1)) .timestamp(), 0, );
pub fn date(self) -> Date
[src]
Get the Date
in the stored offset.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .date(), date!(2019-01-01), ); assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .to_offset(offset!(-1)) .date(), date!(2018-12-31), );
pub fn time(self) -> Time
[src]
Get the Time
in the stored offset.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .time(), time!(0:00) ); assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .to_offset(offset!(-1)) .time(), time!(23:00) );
pub fn year(self) -> i32
[src]
Get the year of the date in the stored offset.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .year(), 2019, ); assert_eq!( date!(2019-12-31) .with_time(time!(23:00)) .assume_utc() .to_offset(offset!(+1)) .year(), 2020, ); assert_eq!( date!(2020-01-01) .midnight() .assume_utc() .year(), 2020, );
pub fn month(self) -> u8
[src]
Get the month of the date in the stored offset. If fetching both the
month and day, it is more efficient to use
[OffsetDateTime::month_day
].
The returned value will always be in the range 1..=12
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .month(), 1, ); assert_eq!( date!(2019-12-31) .with_time(time!(23:00)) .assume_utc() .to_offset(offset!(+1)) .month(), 1, );
pub fn day(self) -> u8
[src]
Get the day of the date in the stored offset. If fetching both the month
and day, it is more efficient to use [OffsetDateTime::month_day
].
The returned value will always be in the range 1..=31
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .day(), 1, ); assert_eq!( date!(2019-12-31) .with_time(time!(23:00)) .assume_utc() .to_offset(offset!(+1)) .day(), 1, );
pub fn month_day(self) -> (u8, u8)
[src]
Get the month and day of the date in the stored offset.
The month component will always be in the range 1..=12
;
the day component in 1..=31
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .month_day(), (1, 1), ); assert_eq!( date!(2019-12-31) .with_time(time!(23:00)) .assume_utc() .to_offset(offset!(+1)) .month_day(), (1, 1), );
pub fn ordinal(self) -> u16
[src]
Get the day of the year of the date in the stored offset.
The returned value will always be in the range 1..=366
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .ordinal(), 1, ); assert_eq!( date!(2019-12-31) .with_time(time!(23:00)) .assume_utc() .to_offset(offset!(+1)) .ordinal(), 1, );
pub fn iso_year_week(self) -> (i32, u8)
[src]
Get the ISO 8601 year and week number in the stored offset.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .iso_year_week(), (2019, 1), ); assert_eq!( date!(2019-10-04) .midnight() .assume_utc() .iso_year_week(), (2019, 40), ); assert_eq!( date!(2020-01-01) .midnight() .assume_utc() .iso_year_week(), (2020, 1), ); assert_eq!( date!(2020-12-31) .midnight() .assume_utc() .iso_year_week(), (2020, 53), ); assert_eq!( date!(2021-01-01) .midnight() .assume_utc() .iso_year_week(), (2020, 53), );
pub fn week(self) -> u8
[src]
Get the ISO week number of the date in the stored offset.
The returned value will always be in the range 1..=53
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .week(), 1, ); assert_eq!( date!(2020-01-01) .midnight() .assume_utc() .week(), 1, ); assert_eq!( date!(2020-12-31) .midnight() .assume_utc() .week(), 53, ); assert_eq!( date!(2021-01-01) .midnight() .assume_utc() .week(), 53, );
pub fn weekday(self) -> Weekday
[src]
Get the weekday of the date in the stored offset.
This current uses Zeller's congruence internally.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .weekday(), Tuesday, ); assert_eq!( date!(2019-02-01) .midnight() .assume_utc() .weekday(), Friday, ); assert_eq!( date!(2019-03-01) .midnight() .assume_utc() .weekday(), Friday, );
pub fn hour(self) -> u8
[src]
Get the clock hour in the stored offset.
The returned value will always be in the range 0..24
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .hour(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59)) .assume_utc() .to_offset(offset!(-2)) .hour(), 21, );
pub fn minute(self) -> u8
[src]
Get the minute within the hour in the stored offset.
The returned value will always be in the range 0..60
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .minute(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59)) .assume_utc() .to_offset(offset!(+0:30)) .minute(), 29, );
pub fn second(self) -> u8
[src]
Get the second within the minute in the stored offset.
The returned value will always be in the range 0..60
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .second(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59)) .assume_utc() .to_offset(offset!(+0:00:30)) .second(), 29, );
pub fn millisecond(self) -> u16
[src]
Get the milliseconds within the second in the stored offset.
The returned value will always be in the range 0..1_000
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .millisecond(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59.999)) .assume_utc() .millisecond(), 999, );
pub fn microsecond(self) -> u32
[src]
Get the microseconds within the second in the stored offset.
The returned value will always be in the range 0..1_000_000
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .microsecond(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59.999_999)) .assume_utc() .microsecond(), 999_999, );
pub fn nanosecond(self) -> u32
[src]
Get the nanoseconds within the second in the stored offset.
The returned value will always be in the range 0..1_000_000_000
.
assert_eq!( date!(2019-01-01) .midnight() .assume_utc() .nanosecond(), 0, ); assert_eq!( date!(2019-01-01) .with_time(time!(23:59:59.999_999_999)) .assume_utc() .nanosecond(), 999_999_999, );
impl OffsetDateTime
[src]
Methods that allow formatting the OffsetDateTime
.
pub fn format(self, format: impl Into<Format>) -> String
[src]
Format the OffsetDateTime
using the provided string.
assert_eq!( date!(2019-01-02) .midnight() .assume_utc() .format("%F %r %z"), "2019-01-02 12:00:00 am +0000", );
pub fn lazy_format(self, format: impl Into<Format>) -> impl Display
[src]
Format the OffsetDateTime
using the provided string.
assert_eq!( date!(2019-01-02) .midnight() .assume_utc() .lazy_format("%F %r %z") .to_string(), "2019-01-02 12:00:00 am +0000", );
pub fn parse(
s: impl AsRef<str>,
format: impl Into<Format>
) -> Result<Self, ParseError>
[src]
s: impl AsRef<str>,
format: impl Into<Format>
) -> Result<Self, ParseError>
Attempt to parse an OffsetDateTime
using the provided string.
assert_eq!( OffsetDateTime::parse("2019-01-02 00:00:00 +0000", "%F %T %z"), Ok(date!(2019-01-02).midnight().assume_utc()), ); assert_eq!( OffsetDateTime::parse("2019-002 23:59:59 +0000", "%Y-%j %T %z"), Ok(date!(2019-002).with_time(time!(23:59:59)).assume_utc()), ); assert_eq!( OffsetDateTime::parse("2019-W01-3 12:00:00 pm +0000", "%G-W%V-%u %r %z"), Ok(date!(2019-W01-3).with_time(time!(12:00)).assume_utc()), );
Trait Implementations
impl Add<Duration> for OffsetDateTime
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, duration: Duration) -> Self::Output
[src]
impl Add<Duration> for OffsetDateTime
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, duration: StdDuration) -> Self::Output
[src]
impl AddAssign<Duration> for OffsetDateTime
[src]
fn add_assign(&mut self, duration: Duration)
[src]
impl AddAssign<Duration> for OffsetDateTime
[src]
fn add_assign(&mut self, duration: StdDuration)
[src]
impl Clone for OffsetDateTime
[src]
fn clone(&self) -> OffsetDateTime
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for OffsetDateTime
[src]
impl Debug for OffsetDateTime
[src]
impl Display for OffsetDateTime
[src]
impl Eq for OffsetDateTime
[src]
impl From<OffsetDateTime> for SystemTime
[src]
fn from(datetime: OffsetDateTime) -> Self
[src]
impl From<SystemTime> for OffsetDateTime
[src]
fn from(system_time: SystemTime) -> Self
[src]
impl Hash for OffsetDateTime
[src]
fn hash<H: Hasher>(&self, hasher: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for OffsetDateTime
[src]
fn cmp(&self, rhs: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<OffsetDateTime> for OffsetDateTime
[src]
impl PartialEq<OffsetDateTime> for SystemTime
[src]
fn eq(&self, rhs: &OffsetDateTime) -> bool
[src]
#[must_use]fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialEq<SystemTime> for OffsetDateTime
[src]
impl PartialOrd<OffsetDateTime> for OffsetDateTime
[src]
fn partial_cmp(&self, rhs: &Self) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialOrd<OffsetDateTime> for SystemTime
[src]
fn partial_cmp(&self, other: &OffsetDateTime) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl PartialOrd<SystemTime> for OffsetDateTime
[src]
fn partial_cmp(&self, other: &SystemTime) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl StructuralEq for OffsetDateTime
[src]
impl Sub<Duration> for OffsetDateTime
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, duration: Duration) -> Self::Output
[src]
impl Sub<Duration> for OffsetDateTime
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, duration: StdDuration) -> Self::Output
[src]
impl Sub<OffsetDateTime> for OffsetDateTime
[src]
type Output = Duration
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self::Output
[src]
impl Sub<OffsetDateTime> for SystemTime
[src]
type Output = Duration
The resulting type after applying the -
operator.
fn sub(self, rhs: OffsetDateTime) -> Self::Output
[src]
impl Sub<SystemTime> for OffsetDateTime
[src]
type Output = Duration
The resulting type after applying the -
operator.
fn sub(self, rhs: SystemTime) -> Self::Output
[src]
impl SubAssign<Duration> for OffsetDateTime
[src]
fn sub_assign(&mut self, duration: Duration)
[src]
impl SubAssign<Duration> for OffsetDateTime
[src]
fn sub_assign(&mut self, duration: StdDuration)
[src]
Auto Trait Implementations
impl RefUnwindSafe for OffsetDateTime
impl Send for OffsetDateTime
impl Sync for OffsetDateTime
impl Unpin for OffsetDateTime
impl UnwindSafe for OffsetDateTime
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,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
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.
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>,