Expand description
The DateSpan
alias is a span consisting of chrono::Date
s.
It can be used to represent date spans that depend on a specific time zone.
The DateSpan
can be formatted to a string. It can only be used for serialization
when using serde
as deserialization is not supported.
Example
use timespan::DateSpan;
use chrono_tz::Europe::Paris;
let a = DateSpan::from_utc_datespan(
&"1789-06-17 - 1799-11-10".parse().unwrap(),
&Paris,
);
let f = a.format(
"The french revolution lasted from the {start} to the {end}.",
"%eth of %B %Y",
"%eth of %B %Y",
);
assert!(
format!("{}", f) ==
"The french revolution lasted from the 17th of June 1789 to the 10th of November 1799."
);
Implementations
sourceimpl<T: TimeZone> DateSpan<T>
impl<T: TimeZone> DateSpan<T>
sourcepub fn from_local_datespan(span: &NaiveDateSpan, tz: &T) -> Result<Self, Error>
pub fn from_local_datespan(span: &NaiveDateSpan, tz: &T) -> Result<Self, Error>
Create a DateSpan
from a NaiveDateSpan
with the time zone set to the local time zone.
Currently the result handling of the internally used TimeZone::from_local_date
is not
implemented properly. Therefore only date spans with a single local time zone can be created.
Ambigious local time zones will lead to Error::LocalAmbigious
.
To avoid this from_utc_datespan
should be prefered.
sourcepub fn from_utc_datespan(span: &NaiveDateSpan, tz: &T) -> Self
pub fn from_utc_datespan(span: &NaiveDateSpan, tz: &T) -> Self
Create a DateSpan
from a NaiveDateSpan
with the time zone set to UTC.
As a DateSpan
cannot be parsed from a string this method is the preferred way of creating
a DateSpan
.
Example
use timespan::DateSpan;
use chrono_tz::Europe::Berlin;
let a = DateSpan::from_utc_datespan(
&"2017-05-21 - 2017-05-27".parse().unwrap(),
&Berlin,
);
assert!(format!("{}", a) == "2017-05-21CEST - 2017-05-27CEST");