pub struct UtcDateTime {
    year: u32,
    month: u8,
    day_of_month: u8,
    hour: u8,
    minute: u8,
    second: u8,
}
Expand description

A UtcDateTime represents a Unix timestamp on the UTC Calendar.

It can represent any date between 1-1-1 00:00:00 and [u32::MAX]-12-31 23:59:59 (inclusive).

In terms of indexing:

  • Months and days of month are 1-based (i.e. Dec 15th 2022 corresponds to 2022-12-15).
  • Hour, minute and second are 0-based, based on the 24-hour clock. Midnight is represented as 00:00:00 and 23:59:59 is the last second before midnight. Following Unix timstamp conventions, leap seconds are not supported.

UtcDateTime supports methods for easy conversion to and from the Instant type, which can be queried from the Radix Engine.

Fields§

§year: u32§month: u8§day_of_month: u8§hour: u8§minute: u8§second: u8

Implementations§

source§

impl UtcDateTime

source

pub fn new( year: u32, month: u8, day_of_month: u8, hour: u8, minute: u8, second: u8 ) -> Result<UtcDateTime, DateTimeError>

Creates a UtcDateTime from its individual components.

Months and days of month are 1-based, with the following limits:

  • Valid year range is: 1 to u32::MAXinclusive.
  • Valid month values are: 1 to 12 inclusive.
  • Valid day of month values are: 1 to {28, 29, 30, 31} inclusive. The upper limit depends on the month and year, as per the Gregorian calendar.

An attempt to create an invalid date (e.g. 2022-04-31 or 2023-02-29) will result in a corresponding Err(DateTimeError).

Hour, minute and second constitute a 0-based 24-hour clock. Midnight is represented as 00:00:00 and 23:59:59 is the maximum possible time (a second before midnight). Following Unix time conventions, leap seconds are not represented in this system.

source

pub fn from_instant(instant: &Instant) -> Result<UtcDateTime, DateTimeError>

Creates a UtcDateTime from an Instant.

The minimum supported seconds_since_unix_epoch value is -62135596800 (corresponding to 1-1-1 00:00:00) and the maximum value is 135536014634284799 (corresponding to [u32::Max]-12-31 23:59:59).

source

pub fn to_instant(&self) -> Instant

Creates an Instant from this UtcDateTime

source

pub fn year(&self) -> u32

source

pub fn month(&self) -> u8

source

pub fn day_of_month(&self) -> u8

source

pub fn hour(&self) -> u8

source

pub fn minute(&self) -> u8

source

pub fn second(&self) -> u8

source

pub fn add_days(&self, days_to_add: i64) -> Option<UtcDateTime>

source

pub fn add_hours(&self, hours_to_add: i64) -> Option<UtcDateTime>

source

pub fn add_minutes(&self, minutes_to_add: i64) -> Option<UtcDateTime>

source

pub fn add_seconds(&self, seconds_to_add: i64) -> Option<UtcDateTime>

Trait Implementations§

source§

impl<X> Categorize<X> for UtcDateTime
where X: CustomValueKind,

source§

impl Clone for UtcDateTime

source§

fn clone(&self) -> UtcDateTime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for UtcDateTime

source§

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

Formats the value using the given formatter. Read more
source§

impl<D, X> Decode<X, D> for UtcDateTime
where D: Decoder<X>, X: CustomValueKind,

source§

fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<X> ) -> Result<UtcDateTime, DecodeError>

Decodes the type from the decoder, which should match a preloaded value kind. Read more
source§

impl Describe<NoCustomTypeKind> for UtcDateTime

source§

const TYPE_ID: RustTypeId = _

The TYPE_ID should give a unique identifier for its SBOR schema type. An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read more
source§

fn type_data() -> TypeData<NoCustomTypeKind, RustTypeId>

Returns the local schema for the given type. Read more
source§

fn add_all_dependencies(aggregator: &mut TypeAggregator<NoCustomTypeKind>)

For each type referenced in get_local_type_data, we need to ensure that the type and all of its own references get added to the aggregator. Read more
source§

impl Describe<ScryptoCustomTypeKind> for UtcDateTime

source§

const TYPE_ID: RustTypeId = _

The TYPE_ID should give a unique identifier for its SBOR schema type. An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read more
source§

fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId>

Returns the local schema for the given type. Read more
source§

fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)

For each type referenced in get_local_type_data, we need to ensure that the type and all of its own references get added to the aggregator. Read more
source§

impl Display for UtcDateTime

source§

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

Formats the value using the given formatter. Read more
source§

impl<E, X> Encode<X, E> for UtcDateTime
where E: Encoder<X>, X: CustomValueKind,

source§

fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>

Encodes the SBOR value’s kind to the encoder
source§

fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>

Encodes the SBOR body of the type to the encoder. Read more
source§

impl From<UtcDateTime> for Instant

source§

fn from(dt: UtcDateTime) -> Instant

Converts to this type from the input type.
source§

impl FromStr for UtcDateTime

§

type Err = ParseUtcDateTimeError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<UtcDateTime, <UtcDateTime as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for UtcDateTime

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<X> SborTuple<X> for UtcDateTime
where X: CustomValueKind,

source§

impl TryFrom<Instant> for UtcDateTime

§

type Error = DateTimeError

The type returned in the event of a conversion error.
source§

fn try_from( instant: Instant ) -> Result<UtcDateTime, <UtcDateTime as TryFrom<Instant>>::Error>

Performs the conversion.
source§

impl Copy for UtcDateTime

source§

impl Eq for UtcDateTime

source§

impl StructuralPartialEq for UtcDateTime

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<U> As for U

§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> ResolvableArguments for T

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> BasicCategorize for T

source§

impl<T> BasicDecode for T

source§

impl<T> BasicDescribe for T

source§

impl<T> BasicEncode for T

source§

impl<T> BasicSbor for T

source§

impl<T> BasicSborTuple for T

source§

impl<T> ManifestCategorize for T

source§

impl<T> ManifestDecode for T

source§

impl<T> ManifestEncode for T

source§

impl<T> ManifestSborTuple for T

source§

impl<T> ScryptoCategorize for T

source§

impl<T> ScryptoDecode for T

source§

impl<T> ScryptoDescribe for T

source§

impl<T> ScryptoEncode for T

source§

impl<T> ScryptoSbor for T

source§

impl<T> ScryptoSborTuple for T