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 UtcDateTimewhere 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 UtcDateTimewhere 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 = ::sbor::RustTypeId::novel_with_code("UtcDateTime", &[], &[166u8, 202u8, 225u8, 93u8, 60u8, 197u8, 90u8, 105u8, 60u8, 21u8, 62u8, 253u8, 30u8, 30u8, 154u8, 90u8, 68u8, 99u8, 18u8, 136u8])

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 = RustTypeId::WellKnown(well_known_scrypto_custom_types::UTC_DATE_TIME_TYPE)

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 UtcDateTimewhere 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<UtcDateTime> 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 UtcDateTimewhere 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 StructuralEq for UtcDateTime

source§

impl StructuralPartialEq for UtcDateTime

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere 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) -> Twhere 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 Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Qwhere 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 Qwhere 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<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> BasicCategorize for Twhere T: Categorize<NoCustomValueKind> + ?Sized,

source§

impl<T> BasicDecode for Twhere T: for<'a> Decode<NoCustomValueKind, VecDecoder<'a, NoCustomValueKind>>,

source§

impl<T> BasicDescribe for Twhere T: Describe<NoCustomTypeKind> + ?Sized,

source§

impl<T> BasicEncode for Twhere T: for<'a> Encode<NoCustomValueKind, VecEncoder<'a, NoCustomValueKind>> + ?Sized,

source§

impl<T> BasicSbor for Twhere T: BasicCategorize + BasicDecode + BasicEncode + BasicDescribe,

source§

impl<T> BasicSborTuple for Twhere T: SborTuple<NoCustomValueKind> + ?Sized,

source§

impl<T> ManifestCategorize for Twhere T: Categorize<ManifestCustomValueKind> + ?Sized,

source§

impl<T> ManifestDecode for Twhere T: for<'a> Decode<ManifestCustomValueKind, VecDecoder<'a, ManifestCustomValueKind>>,

source§

impl<T> ManifestEncode for Twhere T: for<'a> Encode<ManifestCustomValueKind, VecEncoder<'a, ManifestCustomValueKind>> + ?Sized,

source§

impl<T> ManifestSborTuple for Twhere T: SborTuple<ManifestCustomValueKind> + ?Sized,

source§

impl<T> ScryptoCategorize for Twhere T: Categorize<ScryptoCustomValueKind> + ?Sized,

source§

impl<T> ScryptoDecode for Twhere T: for<'a> Decode<ScryptoCustomValueKind, VecDecoder<'a, ScryptoCustomValueKind>>,

source§

impl<T> ScryptoDescribe for Twhere T: Describe<ScryptoCustomTypeKind>,

source§

impl<T> ScryptoEncode for Twhere T: for<'a> Encode<ScryptoCustomValueKind, VecEncoder<'a, ScryptoCustomValueKind>> + ?Sized,

source§

impl<T> ScryptoSbor for Twhere T: ScryptoCategorize + ScryptoDecode + ScryptoEncode + ScryptoDescribe,

source§

impl<T> ScryptoSborTuple for Twhere T: SborTuple<ScryptoCustomValueKind> + ?Sized,