This is a description of valid timezone strings for ENV[ARC]:TZ:
"XPG3TZ - time zone information"
The form of the time zone information is based on the XPG3 specification of
the TZ environment variable. Spaces are allowed only in timezone
designations, where they are significant. The following description
closely follows the XPG3 specification, except for the paragraphs starting
<std> and <dst>
Are each three or more bytes that are the designation for the
standard (<std>) and daylight savings time (<dst>) timezones.
Only <std> is required - if <dst> is missing, then daylight
savings time does not apply in this locale. Upper- and
lower-case letters are allowed. Any characters except a
leading colon (:), digits, a comma (,), a minus (-) or a plus
(+) are allowed.
**CLARIFICATION** The two-byte designation `UT' is permitted.
Indicates the value one must add to the local time to arrive
at Coordinated Universal Time. The offset has the form:
The minutes <mm> and seconds <ss> are optional. The hour <hh>
is required and may be a single digit. The offset following
<std> is required. If no offset follows <dst>, daylight savings
time is assumed to be one hour ahead of standard time. One or
more digits may be used; the value is always interpreted as a
decimal number. The hour must be between 0 and 24, and the
minutes (and seconds) if present between 0 and 59. Out of
range values may cause unpredictable behavior. If preceded by
a `-', the timezone is east of the Prime Meridian; otherwise
it is west (which may be indicated by an optional preceding
**CLARIFICATION** No more than two digits are allowed in any
of <hh>, <mm> or <ss>. Leading zeros are permitted.
<start>/<time> and <end>/<time>
Indicates when to change to and back from daylight savings
time, where <start>/<time> describes when the change from
standard time to daylight savings time occurs, and
<end>/<time> describes when the change back happens. Each
<time> field describes when, in current local time, the change
**CLARIFICATION** It is recognized that in the Southern
hemisphere <start> will specify a date later than <end>.
The formats of <start> and <end> are one of the following:
J<n> The Julian day <n> (1 <= <n> <= 365). Leap days are not
counted. That is, in all years, February 28 is day 59
and March 1 is day 60. It is impossible to refer to
the occasional February 29.
<n> The zero-based Julian day (0 <= <n> <= 365). Leap days
are counted, and it is possible to refer to February
The <d>th day, (0 <= <d> <= 6) of week <n> of month <m>
of the year (1 <= <n> <= 5, 1 <= <m> <= 12), where week
5 means `the last <d>-day in month <m>' (which may
occur in either the fourth or the fifth week). Week 1
is the first week in which the <d>th day occurs. Day
zero is Sunday.
**CLARIFICATION** Neither <n> nor <m> may have a
leading zero. <d> must be a single digit.
**CLARIFICATION** The default <start> and <end> values
are from the first Sunday in April until the last Sunday
in October. This allows United States users to leave out
the <start> and <end> parts, as most are accustomed to
<time> has the same format as <offset> except that no leading
sign (`-' or `+') is allowed. The default, if <time> is not
given is 02:00:00.
**CLARIFICATION** The number of hours in <time> may be up
to 167, to allow encoding of rules such as `00:00hrs on the
Sunday after the second Friday in September'
Example (for Central Europe):
Another example, for the US East Coast:
This string describes the default values when no time zone is set.