[−][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 thanRcTz
but 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");
Implementations
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<Tz> for RcTz
[src]
impl From<Tz> for ArcTz
[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>,