[−][src]Struct tzfile::Tz
Time zone parsed from a tz database file.
When a time zone has complex transition rules, a Tz object can be very
large and expensive to clone. As every DateTime
instant would store a copy of the time zone object, it would be very slow to
support DateTime<Tz> directly. Therefore, Tz itself does not implement
TimeZone. Rather, you may use one of the following instead:
&'a Tz— zero cost to clone, but only valid within the lifetime'a.RcTz— uses reference counting (Rc) to support shallow cloning, but is not thread-safe.ArcTz— uses atomic reference counting (Arc) to support shallow cloning, slightly more expensive thanRcTzbut is thread-safe.
Examples
Read the time zone information from the system, and use &Tz as TimeZone.
use chrono::{Utc, TimeZone}; use tzfile::Tz; let tz = Tz::named("America/New_York")?; let dt1 = Utc.ymd(2019, 3, 10).and_hms(6, 45, 0); assert_eq!(dt1.with_timezone(&&tz).to_string(), "2019-03-10 01:45:00 EST"); let dt2 = Utc.ymd(2019, 3, 10).and_hms(7, 15, 0); assert_eq!(dt2.with_timezone(&&tz).to_string(), "2019-03-10 03:15:00 EDT");
Methods
impl Tz[src]
pub fn parse(_name: &str, source: &[u8]) -> Result<Self, Error>[src]
Parses the content of the tz database file.
This crate can only recognize version 2 and 3 of the tz database. Like
chrono, leap second information is ignored. The embedded POSIX TZ
string, which describes non-hard-coded transition rules in the far
future, is also not handled.
Examples
Read a file into bytes and then parse it.
use tzfile::Tz; let content = std::fs::read("/usr/share/zoneinfo/Etc/UTC")?; let tz = Tz::parse("Etc/UTC", &content)?;
pub fn named(name: &str) -> Result<Self>[src]
Reads and parses a system time zone.
This function is equivalent to reading /usr/share/zoneinfo/{name} and
the constructs a time zone via parse().
This function is currently only supported on Unix.
pub fn local() -> Result<Self>[src]
Reads the parses the current local time zone.
This function calls Tz::named($TZ) if the environment variable
$TZ is set, otherwise reads and parses /etc/localtime.
This function is currently only supported on Unix.
Trait Implementations
impl Clone for Tz[src]
impl Debug for Tz[src]
impl Eq for Tz[src]
impl From<FixedOffset> for Tz[src]
fn from(offset: FixedOffset) -> Self[src]
impl From<Utc> for Tz[src]
impl Hash for Tz[src]
fn hash<__H: Hasher>(&self, state: &mut __H)[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl PartialEq<Tz> for Tz[src]
impl StructuralEq for Tz[src]
impl StructuralPartialEq for Tz[src]
impl<'a> TimeZone for &'a Tz[src]
type Offset = Offset<Self>
An associated offset type. This type is used to store the actual offset in date and time types. The original TimeZone value can be recovered via TimeZone::from_offset. Read more
fn from_offset(offset: &Self::Offset) -> Self[src]
fn offset_from_utc_datetime(&self, utc: &NaiveDateTime) -> Self::Offset[src]
fn offset_from_utc_date(&self, utc: &NaiveDate) -> Self::Offset[src]
fn offset_from_local_date(&self, local: &NaiveDate) -> LocalResult<Self::Offset>[src]
fn offset_from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<Self::Offset>[src]
&self,
local: &NaiveDateTime
) -> LocalResult<Self::Offset>
fn ymd(&self, year: i32, month: u32, day: u32) -> Date<Self>[src]
fn ymd_opt(&self, year: i32, month: u32, day: u32) -> LocalResult<Date<Self>>[src]
fn yo(&self, year: i32, ordinal: u32) -> Date<Self>[src]
fn yo_opt(&self, year: i32, ordinal: u32) -> LocalResult<Date<Self>>[src]
fn isoywd(&self, year: i32, week: u32, weekday: Weekday) -> Date<Self>[src]
fn isoywd_opt(
&self,
year: i32,
week: u32,
weekday: Weekday
) -> LocalResult<Date<Self>>[src]
&self,
year: i32,
week: u32,
weekday: Weekday
) -> LocalResult<Date<Self>>
fn timestamp(&self, secs: i64, nsecs: u32) -> DateTime<Self>[src]
fn timestamp_opt(&self, secs: i64, nsecs: u32) -> LocalResult<DateTime<Self>>[src]
fn timestamp_millis(&self, millis: i64) -> DateTime<Self>[src]
fn timestamp_millis_opt(&self, millis: i64) -> LocalResult<DateTime<Self>>[src]
fn timestamp_nanos(&self, nanos: i64) -> DateTime<Self>[src]
fn datetime_from_str(
&self,
s: &str,
fmt: &str
) -> Result<DateTime<Self>, ParseError>[src]
&self,
s: &str,
fmt: &str
) -> Result<DateTime<Self>, ParseError>
fn from_local_date(&self, local: &NaiveDate) -> LocalResult<Date<Self>>[src]
fn from_local_datetime(
&self,
local: &NaiveDateTime
) -> LocalResult<DateTime<Self>>[src]
&self,
local: &NaiveDateTime
) -> LocalResult<DateTime<Self>>
fn from_utc_date(&self, utc: &NaiveDate) -> Date<Self>[src]
fn from_utc_datetime(&self, utc: &NaiveDateTime) -> DateTime<Self>[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,