Syntax for TZ strings

TZ Timezone information.

TZ has the form:
std and dst
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.
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 "+" sign).
Indicate 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 is made.

The formats of start and end are one of the following:

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.
The zero-based Julian day (0 < n < 365). Leap days are counted, and it is possible to refer to February 29.
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.

Implementation specific defaults are used for start and end if these optional fields are not given.

The 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.

Source: POSIX 1003.1 section 8.3