# UTC Offset

Key: `datetime.offset.utc`

Explicit UTC offset string (e.g., "UTC +05:00"). Used in configuration files and human-readable timezone displays.

Page: <https://meridian.online/docs/projects/finetype/types/datetime/offset/utc>

Samples: `UTC +05:00`, `UTC -08:00`, `UTC +00:00`

## Background

### Origin

FineType defines UTC Offset as an explicit UTC offset string, giving "UTC +05:00" as its example.[[1]](https://github.com/meridian-online/finetype/blob/main/labels/definitions_datetime.yaml) FineType's definition lists gmt\_offset as an alias for the type.[[1]](https://github.com/meridian-online/finetype/blob/main/labels/definitions_datetime.yaml)

A UTC offset is the difference in hours and minutes between Coordinated Universal Time (UTC) and the standard time at a particular place.[[2]](https://en.wikipedia.org/wiki/UTC_offset) A UTC offset is generally shown in the format ±\[hh\]:\[mm\], ±\[hh\]\[mm\], or ±\[hh\].[[2]](https://en.wikipedia.org/wiki/UTC_offset) By convention, every inhabited place in the world has a UTC offset that is a multiple of 15 minutes.[[2]](https://en.wikipedia.org/wiki/UTC_offset)

The abbreviation UTC follows the word order of neither the English Coordinated Universal Time nor the French temps universel coordonné, and was adopted as a compromise.[[3]](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) UTC was first officially adopted as a standard in 1963.[[3]](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) "UTC" became the official abbreviation of Coordinated Universal Time in 1967.[[3]](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) UTC is the effective successor to Greenwich Mean Time (GMT) in everyday usage and common applications.[[3]](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)

ISO 8601 appends the UTC offset directly to the time, in the format ±\[hh\]:\[mm\], ±\[hh\]\[mm\], or ±\[hh\].[[4]](https://en.wikipedia.org/wiki/ISO_8601) ISO 8601 does not permit a zero offset to be written with a negative sign, as −00:00.[[4]](https://en.wikipedia.org/wiki/ISO_8601) ISO 8601 specifies a minus sign for negative offsets, with the hyphen-minus used when the character set has no minus sign.[[4]](https://en.wikipedia.org/wiki/ISO_8601)

### Use

Microsoft's Default Time Zones table for Windows labels each zone with its offset in parentheses, such as (UTC+05:00) for Ashgabat, Tashkent.[[5]](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones) Microsoft's Default Time Zones table shows zones with no offset, such as Dublin, Edinburgh, Lisbon, London, as (UTC) with no digits.[[5]](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones) Since Python 3.6, the name generated by datetime.timezone for a zero offset is plain 'UTC', not 'UTC+00:00'.[[6]](https://docs.python.org/3/library/datetime.html) Java's ZoneId recognises offset-style IDs with the prefix 'UTC', 'GMT' or 'UT', such as 'GMT+2' or 'UTC+01:00'.[[7]](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/ZoneId.html) Before parsing a column of these labels, look at whether a space follows the prefix, whether the zero offset carries digits, and whether the prefix is UTC or GMT, because producers write the same offset in several ways. (Meridian's view)

In regions that observe daylight saving time, the offset changes with the season: Pacific Standard Time at UTC−08:00 is replaced by Pacific Daylight Time at UTC−07:00.[[2]](https://en.wikipedia.org/wiki/UTC_offset) Treat a stored offset as a fact about one moment rather than about a place, and keep the zone name beside it when the source gives one. (Meridian's view)

In the tz database, zone names beginning with Etc/GMT have their sign reversed from the ISO 8601 convention, so Etc/GMT-14 is 14 hours ahead of GMT.[[8]](https://en.wikipedia.org/wiki/Tz_database) Never strip the prefix from an Etc/GMT name and read what is left as an ISO 8601 offset. (Meridian's view)

Normalise a Unicode minus sign to a hyphen-minus before matching, then convert the sign, hours and minutes to a signed count of minutes, so that offsets can be compared and joined as numbers rather than strings. (Meridian's view)

## Sources

1. [finetype/labels/definitions\_datetime.yaml at main · meridian-online/finetype · GitHub](https://github.com/meridian-online/finetype/blob/main/labels/definitions_datetime.yaml) — FineType
2. [UTC offset - Wikipedia](https://en.wikipedia.org/wiki/UTC_offset) — secondary source
3. [Coordinated Universal Time - Wikipedia](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) — secondary source
4. [ISO 8601 - Wikipedia](https://en.wikipedia.org/wiki/ISO_8601) — secondary source
5. [Default Time Zones](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones) — documentation
6. [datetime — Basic date and time types](https://docs.python.org/3/library/datetime.html) — documentation
7. [ZoneId (Java SE 21 \& JDK 21)](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/ZoneId.html) — documentation
8. [tz database - Wikipedia](https://en.wikipedia.org/wiki/Tz_database) — secondary source
