Module elastic_types::date
[−]
[src]
Implementation of the Elasticsearch date
type.
Dates in Elasticsearch are exposed as a formatted string
which can contain a date
and/or a time
component.
All dates used by elastic_types
are expected to be given in UTC
, and if no time is supplied, then 12:00am will be used instead.
Where performance is paramount, the EpochMillis
date format will parse and format dates the fastest.
The difference is especially obvious on the stable
channel, where date formats can't be parsed at compile time.
Examples
For defining your own date mapping, see mapping details.
Map with a default date
:
struct MyType { pub field: Date<DefaultDateFormat> }
Map with a custom date
:
struct MyType { pub field: Date<EpochMillis, MyDateMapping> }
Creating Formats
To make it easier to build your own date formats, use the date_fmt!
macro.
This will convert an Elasticsearch or chrono
format string into a Vec<Item>
for efficient parsing at runtime:
#[derive(Default, Clone)] struct MyFormat; date_fmt!(MyFormat, "yyyy-MM-ddTHH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss");
You can also implement CustomDateFormat
yourself and write your own arbitrary format/parse logic:
#[derive(Default, Clone)] struct MyCustomFormat; impl CustomDateFormat for MyCustomFormat { fn name() -> &'static str { "yyyy-MM-dd'T'HH:mm:ssZ" } fn format(date: &DateTime<UTC>) -> String { date.to_rfc3339() } fn parse(date: &str) -> Result<DateTime<UTC>, ParseError> { let date = try!(DateTime::parse_from_rfc3339(date).map_err(|e| ParseError::from(e))); Ok(DateTime::from_utc(date.naive_local(), UTC)) } }
Links
Modules
mapping |
Mapping for the Elasticsearch |
prelude |
Includes all types for the |
Structs
BasicDateTime |
Format for |
BasicDateTimeNoMillis |
Format for |
ChronoFormat |
Format for default |
Date |
An Elasticsearch |
EpochMillis |
Format for |
ParseError |
Represents an error encountered during parsing. |
Traits
CustomDateFormat |
A format used for parsing and formatting dates. |
DateFormat |
A format used for parsing and formatting dates. |
Datelike |
The common set of methods for date component. |
Timelike |
The common set of methods for time component. |
Type Definitions
ChronoDateTime |
A re-export of the |
DefaultDateFormat |
The default |