zdump - timezone dumper
... ] [ timezone
program prints the current time in each timezone
on the command line.
- Output version information and exit.
- Output short usage message and exit.
- Output a description of time intervals. For each timezone on the
command line, output an interval-format description of the timezone. See
“INTERVAL FORMAT” below.
- Output a verbose description of time intervals. For each timezone
on the command line, print the time at the lowest possible time value, the
time one day after the lowest possible time value, the times both one
second before and exactly at each detected time discontinuity, the time at
one day less than the highest possible time value, and the time at the
highest possible time value. Each line is followed by
isdst=D where D is positive, zero, or negative
depending on whether the given time is daylight saving time, standard
time, or an unknown time type, respectively. Each line is also followed by
gmtoff=N if the given local time is known to be N
seconds east of Greenwich.
- Like -v, except omit the times relative to the extreme time values.
This generates output that is easier to compare to that of implementations
with different time representations.
- Cut off interval output at the given year(s). Cutoff times are computed
using the proleptic Gregorian calendar with year 0 and with Universal Time
(UT) ignoring leap seconds. The lower bound is exclusive and the upper is
inclusive; for example, a loyear of 1970 excludes a transition
occurring at 1970-01-01 00:00:00 UTC but a hiyear of 1970 includes
the transition. The default cutoff is -500,2500.
- Cut off interval output at the given time(s), given in decimal seconds
since 1970-01-01 00:00:00 Coordinated Universal Time (UTC). The
timezone determines whether the count includes leap seconds. As
with -c, the cutoff's lower bound is exclusive and its upper bound
The interval format is a compact text representation that is intended to be both
human- and machine-readable. It consists of an empty line, then a line
” where string
is a double-quoted
string giving the timezone, a second line “- - interval
describing the time interval before the first transition if any, and zero or
more following lines “ date time interval
”, one line for
each transition time and following interval. Fields are separated by single
Dates are in yyyy
format and times are in 24-hour
format where hh
<24. Times are in local
time immediately after the transition. A time interval description consists of
a UT offset in signed ±hhmmss
format, a time zone abbreviation,
and an isdst flag. An abbreviation that equals the UT offset is omitted; other
abbreviations are double-quoted strings unless they consist of one or more
alphabetic characters. An isdst flag is omitted for standard time, and
otherwise is a decimal integer that is unsigned and positive (typically 1) for
daylight saving time and negative for unknown.
In times and in UT offsets with absolute value less than 100 hours, the seconds
are omitted if they are zero, and the minutes are also omitted if they are
also zero. Positive UT offsets are east of Greenwich. The UT offset -00
denotes a UT placeholder in areas where the actual offset is unspecified; by
convention, this occurs when the UT offset is zero and the time zone
abbreviation begins with “-” or is “zzz”.
In double-quoted strings, escape sequences represent unusual characters. The
escape sequences are \s for space, and \", \\, \f, \n, \r, \t, and \v
with their usual meaning in the C programming language. E.g., the
double-quoted string “"CET\s\"\\"” represents the
character sequence “CET "\”.
Here is an example of the output, with the leading empty line omitted. (This
example is shown with tab stops set far enough apart so that the tabbed
columns line up.)
- - -10:31:26 LMT
1896-01-13 12:01:26 -10:30 HST
1933-04-30 03 -09:30 HDT 1
1933-05-21 11 -10:30 HST
1942-02-09 03 -09:30 HDT 1
1945-09-30 01 -10:30 HST
1947-06-08 02:30 -10 HST
Here, local time begins 10 hours, 31 minutes and 26 seconds west of UT, and is a
standard time abbreviated LMT. Immediately after the first transition, the
date is 1896-01-13 and the time is 12:01:26, and the following time interval
is 10.5 hours west of UT, a standard time abbreviated HST. Immediately after
the second transition, the date is 1933-04-30 and the time is 03:00:00 and the
following time interval is 9.5 hours west of UT, is abbreviated HDT, and is
daylight saving time. Immediately after the last transition the date is
1947-06-08 and the time is 02:30:00, and the following time interval is 10
hours west of UT, a standard time abbreviated HST.
Here are excerpts from another example:
- - +03:12:12 LMT
1924-04-30 23:47:48 +03
1930-06-21 01 +04
1981-04-01 01 +05 1
1981-09-30 23 +04
2014-10-26 01 +03
2016-03-27 03 +04
This time zone is east of UT, so its UT offsets are positive. Also, many of its
time zone abbreviations are omitted since they duplicate the text of the UT
Time discontinuities are found by sampling the results returned by localtime at
twelve-hour intervals. This works in all real-world cases; one can construct
artificial time zones for which this fails.
In the -v
output, “UT” denotes the value
returned by gmtime
(3), which uses UTC for modern timestamps and some
other UT flavor for timestamps that predate the introduction of UTC. No
attempt is currently made to have the output use “UTC” for newer
and “UT” for older timestamps, partly because the exact date of
the introduction of UTC is problematic.