pub struct DateTime<A>where
A: AsCalendar,{
pub date: Date<A>,
pub time: Time,
}
Expand description
A date and time for a given calendar.
The primary definition of this type is in the icu_time
crate. Other ICU4X crates re-export it for convenience.
Fields§
§date: Date<A>
The date
time: Time
The time
Implementations§
Source§impl<A> DateTime<A>where
A: AsCalendar,
impl<A> DateTime<A>where
A: AsCalendar,
Sourcepub fn try_from_str(
rfc_9557_str: &str,
calendar: A,
) -> Result<DateTime<A>, ParseError>
pub fn try_from_str( rfc_9557_str: &str, calendar: A, ) -> Result<DateTime<A>, ParseError>
Creates a DateTime
in any calendar from an RFC 9557 string.
Returns an error if the string has a calendar annotation that does not
match the calendar argument, unless the argument is Iso
.
✨ Enabled with the ixdtf
Cargo feature.
§Examples
use icu::calendar::cal::Hebrew;
use icu::time::DateTime;
let datetime =
DateTime::try_from_str("2024-07-17T16:01:17.045[u-ca=hebrew]", Hebrew)
.unwrap();
assert_eq!(datetime.date.era_year().year, 5784);
assert_eq!(
datetime.date.month().standard_code,
icu::calendar::types::MonthCode(tinystr::tinystr!(4, "M10"))
);
assert_eq!(datetime.date.day_of_month().0, 11);
assert_eq!(datetime.time.hour.number(), 16);
assert_eq!(datetime.time.minute.number(), 1);
assert_eq!(datetime.time.second.number(), 17);
assert_eq!(datetime.time.subsecond.number(), 45000000);
Sourcepub fn try_from_utf8(
rfc_9557_str: &[u8],
calendar: A,
) -> Result<DateTime<A>, ParseError>
pub fn try_from_utf8( rfc_9557_str: &[u8], calendar: A, ) -> Result<DateTime<A>, ParseError>
Creates a DateTime
in any calendar from an RFC 9557 string.
See Self::try_from_str()
.
✨ Enabled with the ixdtf
Cargo feature.
Trait Implementations§
Source§impl<C, A> ConvertCalendar for DateTime<A>where
C: IntoAnyCalendar,
A: AsCalendar<Calendar = C>,
impl<C, A> ConvertCalendar for DateTime<A>where
C: IntoAnyCalendar,
A: AsCalendar<Calendar = C>,
Source§type Converted<'a> = DateTime<Ref<'a, AnyCalendar>>
type Converted<'a> = DateTime<Ref<'a, AnyCalendar>>
The converted type. This can be the same as the receiver type.
Source§fn to_calendar<'a>(
&self,
calendar: &'a AnyCalendar,
) -> <DateTime<A> as ConvertCalendar>::Converted<'a>
fn to_calendar<'a>( &self, calendar: &'a AnyCalendar, ) -> <DateTime<A> as ConvertCalendar>::Converted<'a>
Converts
self
to the specified AnyCalendar
.Source§impl<C, A> GetField<DayOfMonth> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
impl<C, A> GetField<DayOfMonth> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
Source§fn get_field(&self) -> DayOfMonth
fn get_field(&self) -> DayOfMonth
Returns the value of this trait’s field
T
.Source§impl<C, A> GetField<DayOfYear> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
impl<C, A> GetField<DayOfYear> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
Source§impl<C, A> GetField<MonthInfo> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
impl<C, A> GetField<MonthInfo> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
Source§impl<C, A> GetField<Nanosecond> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
impl<C, A> GetField<Nanosecond> for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
Source§fn get_field(&self) -> Nanosecond
fn get_field(&self) -> Nanosecond
Returns the value of this trait’s field
T
.Source§impl<C, A> InSameCalendar for DateTime<A>where
C: IntoAnyCalendar,
A: AsCalendar<Calendar = C>,
impl<C, A> InSameCalendar for DateTime<A>where
C: IntoAnyCalendar,
A: AsCalendar<Calendar = C>,
Source§fn check_any_calendar_kind(
&self,
any_calendar_kind: AnyCalendarKind,
) -> Result<(), MismatchedCalendarError>
fn check_any_calendar_kind( &self, any_calendar_kind: AnyCalendarKind, ) -> Result<(), MismatchedCalendarError>
Checks whether this type is compatible with the given calendar. Read more
impl<A> Copy for DateTime<A>where
A: Copy + AsCalendar,
impl<A> Eq for DateTime<A>where
A: Eq + AsCalendar,
impl<C, A> InFixedCalendar<C> for DateTime<A>where
C: CldrCalendar,
A: AsCalendar<Calendar = C>,
impl<A> StructuralPartialEq for DateTime<A>where
A: AsCalendar,
impl<C, A> UnstableSealed for DateTime<A>where
C: Calendar,
A: AsCalendar<Calendar = C>,
Auto Trait Implementations§
impl<A> Freeze for DateTime<A>
impl<A> RefUnwindSafe for DateTime<A>
impl<A> Send for DateTime<A>
impl<A> Sync for DateTime<A>
impl<A> Unpin for DateTime<A>
impl<A> UnwindSafe for DateTime<A>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GetField<T> for Twhere
T: Copy + UnstableSealed,
impl<T> GetField<T> for Twhere
T: Copy + UnstableSealed,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more