Next: , Previous: Time and Date, Up: Time and Date


4.13.1 Time Zone

(require 'time-zone)

— Data Format: TZ-string

POSIX standards specify several formats for encoding time-zone rules.

:<pathname>
If the first character of <pathname> is ‘/’, then <pathname> specifies the absolute pathname of a tzfile(5) format time-zone file. Otherwise, <pathname> is interpreted as a pathname within tzfile:vicinity (/usr/lib/zoneinfo/) naming a tzfile(5) format time-zone file.
<std><offset>
The string <std> consists of 3 or more alphabetic characters. <offset> specifies the time difference from GMT. The <offset> is positive if the local time zone is west of the Prime Meridian and negative if it is east. <offset> can be the number of hours or hours and minutes (and optionally seconds) separated by ‘:’. For example, -4:30.
<std><offset><dst>
<dst> is the at least 3 alphabetic characters naming the local daylight-savings-time.
<std><offset><dst><doffset>
<doffset> specifies the offset from the Prime Meridian when daylight-savings-time is in effect.

The non-tzfile formats can optionally be followed by transition times specifying the day and time when a zone changes from standard to daylight-savings and back again.

,<date>/<time>,<date>/<time>
The <time>s are specified like the <offset>s above, except that leading ‘+’ and ‘-’ are not allowed.

Each <date> has one of the formats:

J<day>
specifies the Julian day with <day> between 1 and 365. February 29 is never counted and cannot be referenced.
<day>
This specifies the Julian day with n between 0 and 365. February 29 is counted in leap years and can be specified.
M<month>.<week>.<day>
This specifies day <day> (0 <= <day> <= 6) of week <week> (1 <= <week> <= 5) of month <month> (1 <= <month> <= 12). Week 1 is the first week in which day d occurs and week 5 is the last week in which day <day> occurs. Day 0 is a Sunday.
— Data Type: time-zone

is a datatype encoding how many hours from Greenwich Mean Time the local time is, and the Daylight Savings Time rules for changing it.

— Function: time-zone TZ-string

Creates and returns a time-zone object specified by the string TZ-string. If time-zone cannot interpret TZ-string, #f is returned.

— Function: tz:params caltime tz

tz is a time-zone object. tz:params returns a list of three items:

  1. An integer. 0 if standard time is in effect for timezone tz at caltime; 1 if daylight savings time is in effect for timezone tz at caltime.
  2. The number of seconds west of the Prime Meridian timezone tz is at caltime.
  3. The name for timezone tz at caltime.

tz:params is unaffected by the default timezone; inquiries can be made of any timezone at any calendar time.

— Function: tz:std-offset tz

tz is a time-zone object. tz:std-offset returns the number of seconds west of the Prime Meridian timezone tz is.

The rest of these procedures and variables are provided for POSIX compatability. Because of shared state they are not thread-safe.

— Function: tzset

Returns the default time-zone.

— Function: tzset tz

Sets (and returns) the default time-zone to tz.

— Function: tzset TZ-string

Sets (and returns) the default time-zone to that specified by TZ-string.

tzset also sets the variables *timezone*, daylight?, and tzname. This function is automatically called by the time conversion procedures which depend on the time zone (see Time and Date).

— Variable: *timezone*

Contains the difference, in seconds, between Greenwich Mean Time and local standard time (for example, in the U.S. Eastern time zone (EST), timezone is 5*60*60). *timezone* is initialized by tzset.

— Variable: daylight?

is #t if the default timezone has rules for Daylight Savings Time. Note: daylight? does not tell you when Daylight Savings Time is in effect, just that the default zone sometimes has Daylight Savings Time.

— Variable: tzname

is a vector of strings. Index 0 has the abbreviation for the standard timezone; If daylight?, then index 1 has the abbreviation for the Daylight Savings timezone.