Skip to main content

Timestamp

Struct Timestamp 

Source
pub struct Timestamp {
    pub secs: i64,
    pub nanos: u32,
}
Expand description

An instant: seconds since the Unix epoch, plus a nanosecond fraction.

The seconds are signed, so a time before 1970 is an ordinary value rather than a special case. The fraction is nanoseconds within the second and is normally below NANOS_PER_SEC — a timestamp decoded from an image need not be, because the field it came out of may be wider than the second it divides, and what is reported is what the image holds.

The type is exhaustive: an instant is a second and a fraction, and there is no field it could grow.

Fields§

§secs: i64

Seconds since the Unix epoch, negative before it.

§nanos: u32

Nanoseconds within the second, normally 0..1_000_000_000.

Implementations§

Source§

impl Timestamp

Source

pub const NANOS_PER_SEC: u32 = 1_000_000_000

One past the largest fraction that divides a second.

Source

pub const fn from_secs(secs: i64) -> Self

An instant at secs seconds past the epoch, with no sub-second part.

Source

pub const fn civil(self) -> Civil

The civil date and time of day this instant reads as, UTC.

The fraction is not carried across: a civil reading is a calendar position, and what divides its final second is still nanos.

let civil = Timestamp::from_secs(1_700_000_000).civil();
assert_eq!((civil.year, civil.month, civil.day), (2023, 11, 14));
assert_eq!((civil.hour, civil.minute, civil.second), (22, 13, 20));

Trait Implementations§

Source§

impl Clone for Timestamp

Source§

fn clone(&self) -> Timestamp

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Timestamp

Source§

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

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

impl Default for Timestamp

Source§

fn default() -> Timestamp

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Timestamp

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Timestamp

Source§

impl Eq for Timestamp

Source§

impl StructuralPartialEq for Timestamp

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
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
Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 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.

Source§

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

Source§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.