Time

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Definitions

Standard Time

Standard time is the synchronization of clocks within a time zone to a single time standard, rather than using solar time or local mean time standard. All clocks within the same timezone show the same time.

The standard time set in each time zone is defined in terms of offsets from UTC and, in those time zones where daylight saving time is observed, by applying an additional offset corresponding to the daylight saving.

More details: https://en.wikipedia.org/wiki/Standard_time

UTC

UTC (Coordinated Universal Time or Universal Time) is the primary time standard by which the world regulates time. UTC represents a moment in time within about 1 second of mean solar time at 0° longitude. UTC does not observe daylight savings time. It is a successor to GMT (Greenwich Mean Time). For most practical purposes, UTC is considered interchangeable with GMT, but GMT is no longer precisely defined by the scientific community.

Time zones around the world are expressed using positive or negative offsets from UTC.

GMT

See UTC

Timezone

Daylight Saving Time

How Do Applications Get the Local Timezone?

Applications obtain the current timezone from the system via the localtime API (for more details see man localtime). The timezone information used by localtime and exposed to the API clients is initialized based on the value of the TZ environment variable, as it follows (this applies to Mac/BSD, update it for other platforms):

  • If TZ does not appear in the environment, the best available approximation to local wall clock time is read from /etc/localtime.
  • If TZ appears in the environment but its value is a null string, Coordinated Universal Time (UTC) is used.
  • If TZ appears in the environment and its value begins with a colon (`:'), the rest of its value is used as a pathname of a tzfile-format file from which to read the time conversion information. If the first character of the pathname is a slash (`/'), it is used as an absolute pathname; otherwise, it is used as a pathname relative to the system time conversion information directory.
  • If TZ appears in the environment and its value does not begin with a colon, it is first used as the pathname of a file, as described above, from which to read the time conversion information. Conventionally, the files are available under /usr/share/zoneinfo and the file name designates the corresponding timezone. If that file cannot be read, the value is then interpreted as a direct specification of the time conversion information.
  • If the TZ environment variable does not specify a tzfile-format file and cannot be interpreted as a direct specification, UTC is used.

Example

Setting TZ to:

export TZ=/usr/share/zoneinfo/Pacific/Honolulu

causes date to output this:

Tue Jul 12 14:32:47 HST 2016

Java Timezone Support

Java Timezone

UTC

UTC is specified as "0000" in RFC 822

15/01/01 01:01:01+0000

and as "Z" in ISO 8601

15/01/01 01:01:01 Z