Expand description
Types for resolving and manipulating time zones.
§Fields
In ICU4X, a TimeZoneInfo
consists of up to four different fields:
- The time zone ID
- The offset from UTC
- A timestamp, as time zone names can change over time
- The zone variant, representing concepts such as Standard, Summer, Daylight, and Ramadan time
§Time Zone
The time zone ID corresponds to a time zone from the time zone database. The time zone ID usually corresponds to the largest city in the time zone.
There are two mostly-interchangeable standards for time zone IDs:
- IANA time zone IDs, like
"America/Chicago"
- BCP-47 time zone IDs, like
"uschi"
ICU4X uses BCP-47 time zone IDs for all of its APIs. To get a BCP-47 time zone from an
IANA time zone, use IanaParser
.
§UTC Offset
The UTC offset precisely states the time difference between the time zone in question and Coordinated Universal Time (UTC).
In localized strings, it is often rendered as “UTC-6”, meaning 6 hours less than UTC (some locales use the term “GMT” instead of “UTC”).
§Timestamp
Some time zones change names over time, such as when changing “metazone”. For example, Portugal changed from
“Western European Time” to “Central European Time” and back in the 1990s, without changing time zone ID
(Europe/Lisbon
, ptlis
). Therefore, a timestamp is needed to resolve such generic time zone names.
It is not required to set the timestamp on TimeZoneInfo
. If it is not set, some string
formats may be unsupported.
§Zone Variant
Many zones use different names and offsets in the summer than in the winter. In ICU4X, this is called the zone variant.
CLDR has two zone variants, named "standard"
and "daylight"
. However, the mapping of these
variants to specific observed offsets varies from time zone to time zone, and they may not
consistently represent winter versus summer time.
Note: It is not required to set the zone variant on TimeZoneInfo
. If it is not set, some string
formats may be unsupported.
§Obtaining time zone information
This crate does not ship time zone offset information. Other Rust crates such as chrono_tz
or jiff
are available for this purpose. See our example
.
Re-exports§
pub use iana::IanaParser;
pub use iana::IanaParserBorrowed;
pub use windows::WindowsParser;
pub use windows::WindowsParserBorrowed;
Modules§
- iana
- Tools for parsing IANA time zone IDs.
- models
- Time zone data model choices.
- windows
- Tools for parsing Windows timezone IDs.
Structs§
- Invalid
Offset Error - The time zone offset was invalid. Must be within ±18:00:00.
- Time
Zone - A CLDR time zone identity.
- Time
Zone Info - A utility type that can hold time zone information.
- UtcOffset
- An offset from Coordinated Universal Time (UTC).
- Variant
Offsets - Represents the different offsets in use for a time zone
- Variant
Offsets Calculator VariantOffsetsCalculator
uses data from the data provider to calculate time zone offsets.- Variant
Offsets Calculator Borrowed - The borrowed version of a
VariantOffsetsCalculator
- Zone
Name Timestamp - The moment in time for resolving a time zone name.
Enums§
- Time
Zone Variant - A time zone variant, such as Standard Time, or Daylight/Summer Time.