# tzdb — Time Zone Database
[](https://github.com/Kijewski/tzdb/actions/workflows/ci.yml)
[](https://crates.io/crates/tzdb)
[](https://docs.rs/tzdb/)

[](https://github.com/Kijewski/tzdb/blob/v0.6.1/LICENSE.md "License: Apache-2.0")
Static time zone information for [tz-rs](https://crates.io/crates/tz-rs).
This crate provides all time zones found in the [Time Zone Database](https://www.iana.org/time-zones).
## Usage examples
```rust
let time_zone = tzdb::local_tz()?; // tz::TimeZoneRef<'_>
let current_time = tzdb::now::local()?; // tz::DateTime
// access by identifier
let time_zone = tzdb::time_zone::europe::KYIV;
let current_time = tzdb::now::in_tz(tzdb::time_zone::europe::KYIV)?;
// access by name
let time_zone = tzdb::tz_by_name("Europe/Berlin")?;
let current_time = tzdb::now::in_named("Europe/Berlin")?;
// names are case insensitive
let time_zone = tzdb::tz_by_name("ArCtIc/LongYeArByEn")?;
let current_time = tzdb::now::in_named("ArCtIc/LoNgYeArByEn")?;
// provide a default time zone
let current_time = tzdb::now::local_or(tzdb::time_zone::GMT)?;
let current_time = tzdb::now::in_named_or(tzdb::time_zone::GMT, "Some/City")?;
```
## Feature flags
* `local` <sup>(enabled by default)</sup> — enable functions to query the current system time
* `now` <sup>(enabled by default)</sup> — enable functions to query the current system time
* `std` <sup>(enabled by default, `now` and `local`)</sup> — enable the use of features in the `std` crate
* `alloc` <sup>(enabled by `std`)</sup> — enable the use of features in the `alloc` crate