tzparse 0.4.0

This high-level library reads system timezone information files and returns timechanges (ie. daylight saving time) and human readable data about a timezone.
Documentation
# tzparse


[![Current Crates.io Version](https://img.shields.io/crates/v/tzparse.svg)](https://crates.io/crates/tzparse)
[![Downloads badge](https://img.shields.io/crates/d/tzparse.svg)](https://crates.io/crates/tzparse)

This library's functions are used to retrieve time changes and date/time characteristics for a given TZ.
Based on data provided by system timezone files and [low-level parsing library](https://crates.io/crates/libtzfile).
System TZfiles default location can be overriden with the TZFILES_DIR environment variable.

There are two functions, one using the other's result:

`get_timechanges` obtains time changes for specified year, or all time changes recorded in the TZfile if no year is specified.

`get_zoneinfo` further parses the data to provide useful and human-readable output.

Example with get_zoneinfo:
```rust
extern crate tzparse;

fn main() {
    match tzparse::get_timechanges("Europe/Paris", Some(2019)) {
        Some(tz) => println!("{:?}", tzparse::get_zoneinfo(&tz).unwrap()),
        None => println!("Timezone not found")
    };
}
```

Outputs:
```
{ utc_datetime: 2019-09-27T07:04:09.366157Z, datetime: 2019-09-27T09:04:09.366157+02:00,
dst_from: Some(2019-03-31T01:00:00Z), dst_until: Some(2019-10-27T01:00:00Z),
raw_offset: 3600, dst_offset: 7200, utc_offset: +02:00, abbreviation: "CEST" }
```
The get_timechanges used alone ouputs:
```
[Timechange { time: 2019-03-31T01:00:00Z, gmtoff: 7200, isdst: true, abbreviation: "CEST" },
Timechange { time: 2019-10-27T01:00:00Z, gmtoff: 3600, isdst: false, abbreviation: "CET" }]
```

License: GPL-3.0