[][src]Struct elastic::types::date::prelude::DateValue

pub struct DateValue(_);

A date value produced and consumed by date formats.

DateValue is a very thin wrapper over DateTime<Utc> that doesn't carry any formatting semantics. Like FormattableDateValue, this type is used for binding generics in methods that accept date values but it ignores any format on the input type. You probably won't need to use it directly except to clobber the format on a Date<M> or DateTime<Utc> value.

Methods

impl DateValue[src]

pub fn now() -> DateValue[src]

Equivalent to DateTime<Utc>::now()

pub fn build(
    year: i32,
    month: u32,
    day: u32,
    hour: u32,
    minute: u32,
    second: u32,
    milli: u32
) -> DateValue
[src]

Construct a DateValue from individual parts.

Methods from Deref<Target = DateTime<Utc>>

pub fn date(&self) -> Date<Tz>[src]

Retrieves a date component.

pub fn time(&self) -> NaiveTime[src]

Retrieves a time component. Unlike date, this is not associated to the time zone.

pub fn timestamp(&self) -> i64[src]

Returns the number of non-leap seconds since January 1, 1970 0:00:00 UTC (aka "UNIX timestamp").

pub fn timestamp_millis(&self) -> i64[src]

Returns the number of non-leap-milliseconds since January 1, 1970 UTC

Note that this does reduce the number of years that can be represented from ~584 Billion to ~584 Million. (If this is a problem, please file an issue to let me know what domain needs millisecond precision over billions of years, I'm curious.)

Example

use chrono::Utc;
use chrono::TimeZone;

let dt = Utc.ymd(1970, 1, 1).and_hms_milli(0, 0, 1, 444);
assert_eq!(dt.timestamp_millis(), 1_444);

let dt = Utc.ymd(2001, 9, 9).and_hms_milli(1, 46, 40, 555);
assert_eq!(dt.timestamp_millis(), 1_000_000_000_555);

pub fn timestamp_nanos(&self) -> i64[src]

Returns the number of non-leap-nanoseconds since January 1, 1970 UTC

Note that this does reduce the number of years that can be represented from ~584 Billion to ~584. (If this is a problem, please file an issue to let me know what domain needs nanosecond precision over millenia, I'm curious.)

Example

use chrono::Utc;
use chrono::TimeZone;

let dt = Utc.ymd(1970, 1, 1).and_hms_nano(0, 0, 1, 444);
assert_eq!(dt.timestamp_nanos(), 1_000_000_444);

let dt = Utc.ymd(2001, 9, 9).and_hms_nano(1, 46, 40, 555);
assert_eq!(dt.timestamp_nanos(), 1_000_000_000_000_000_555);

pub fn timestamp_subsec_millis(&self) -> u32[src]

Returns the number of milliseconds since the last second boundary

warning: in event of a leap second, this may exceed 999

note: this is not the number of milliseconds since January 1, 1970 0:00:00 UTC

pub fn timestamp_subsec_micros(&self) -> u32[src]

Returns the number of microseconds since the last second boundary

warning: in event of a leap second, this may exceed 999_999

note: this is not the number of microseconds since January 1, 1970 0:00:00 UTC

pub fn timestamp_subsec_nanos(&self) -> u32[src]

Returns the number of nanoseconds since the last second boundary

warning: in event of a leap second, this may exceed 999_999_999

note: this is not the number of nanoseconds since January 1, 1970 0:00:00 UTC

pub fn offset(&self) -> &<Tz as TimeZone>::Offset[src]

Retrieves an associated offset from UTC.

pub fn timezone(&self) -> Tz[src]

Retrieves an associated time zone.

pub fn with_timezone<Tz2>(&self, tz: &Tz2) -> DateTime<Tz2> where
    Tz2: TimeZone
[src]

Changes the associated time zone. This does not change the actual DateTime (but will change the string representation).

pub fn naive_utc(&self) -> NaiveDateTime[src]

Returns a view to the naive UTC datetime.

pub fn naive_local(&self) -> NaiveDateTime[src]

Returns a view to the naive local datetime.

pub fn to_rfc2822(&self) -> String[src]

Returns an RFC 2822 date and time string such as Tue, 1 Jul 2003 10:52:37 +0200.

pub fn to_rfc3339(&self) -> String[src]

Returns an RFC 3339 and ISO 8601 date and time string such as 1996-12-19T16:39:57-08:00.

pub fn to_rfc3339_opts(&self, secform: SecondsFormat, use_z: bool) -> String[src]

Return an RFC 3339 and ISO 8601 date and time string with subseconds formatted as per a SecondsFormat. If passed use_z true and the timezone is UTC (offset 0), use 'Z', as per Fixed::TimezoneOffsetColonZ. If passed use_z false, use Fixed::TimezoneOffsetColon.

Examples

let dt = Utc.ymd(2018, 1, 26).and_hms_micro(18, 30, 9, 453_829);
assert_eq!(dt.to_rfc3339_opts(SecondsFormat::Millis, false),
           "2018-01-26T18:30:09.453+00:00");
assert_eq!(dt.to_rfc3339_opts(SecondsFormat::Millis, true),
           "2018-01-26T18:30:09.453Z");
assert_eq!(dt.to_rfc3339_opts(SecondsFormat::Secs, true),
           "2018-01-26T18:30:09Z");

let pst = FixedOffset::east(8 * 60 * 60);
let dt = pst.ymd(2018, 1, 26).and_hms_micro(10, 30, 9, 453_829);
assert_eq!(dt.to_rfc3339_opts(SecondsFormat::Secs, true),
           "2018-01-26T10:30:09+08:00");

pub fn format_with_items<'a, I>(&self, items: I) -> DelayedFormat<I> where
    I: Iterator<Item = Item<'a>> + Clone
[src]

Formats the combined date and time with the specified formatting items.

pub fn format(&self, fmt: &'a str) -> DelayedFormat<StrftimeItems<'a>>[src]

Formats the combined date and time with the specified format string. See the format::strftime module on the supported escape sequences.

Trait Implementations

impl Clone for DateValue[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Borrow<DateTime<Utc>> for DateValue[src]

impl Deref for DateValue[src]

type Target = DateTime<Utc>

The resulting type after dereferencing.

impl From<DateTime<Utc>> for DateValue[src]

impl<TFormat> From<FormattableDateValue<TFormat>> for DateValue[src]

impl<TFormat> From<DateValue> for FormattableDateValue<TFormat>[src]

impl<TMapping> From<DateValue> for Date<TMapping> where
    TMapping: DateMapping
[src]

impl<TMapping> From<Date<TMapping>> for DateValue where
    TMapping: DateMapping
[src]

impl PartialEq<DateValue> for DateValue[src]

impl PartialEq<DateValue> for DateTime<Utc>[src]

impl PartialEq<DateTime<Utc>> for DateValue[src]

impl Debug for DateValue[src]

Auto Trait Implementations

impl Send for DateValue

impl Sync for DateValue

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Same for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf for SP where
    SS: SubsetOf<SP>, 

impl<T> Erased for T

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

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