Module chrono::offset

source ·
Expand description

The time zone, which calculates offsets from the local time to UTC.

There are four operations provided by the TimeZone trait:

  1. Converting the local NaiveDateTime to DateTime<Tz>
  2. Converting the UTC NaiveDateTime to DateTime<Tz>
  3. Converting DateTime<Tz> to the local NaiveDateTime
  4. Constructing DateTime<Tz> objects from various offsets

1 is used for constructors. 2 is used for the with_timezone method of date and time types. 3 is used for other methods, e.g. year() or format(), and provided by an associated type which implements Offset (which then passed to TimeZone for actual implementations). Technically speaking TimeZone has a total knowledge about given timescale, but Offset is used as a cache to avoid the repeated conversion and provides implementations for 1 and 3. An TimeZone instance can be reconstructed from the corresponding Offset instance.


  • The time zone with fixed offset, from UTC-23:59:59 to UTC+23:59:59.
  • The local timescale. This is implemented via the standard time crate.
  • The UTC time zone. This is the most efficient time zone when you don’t need the local time. It is also used as an offset (which is also a dummy type).


  • The conversion result from the local time to the timezone-aware datetime types.