http://ohse.de/uwe/ftpcopy/faq.html#timestamp
The FTP protocol, misdesigned as it is, doesn't include time zone information. This means client programs have to guess what the time zone of the server is. At least my programs aren't good in guessing, so they don't even try.
ftpcopy simply assumes UTC (GMT, greenwhich mean time).
A thread titled A renewed plea for inclusion of zone.tab offers some explanation of what zone.tab
is used for.
Its main use seems to be to show a map of cities and their locations, to allow a user to pick their timezone by clicking on a city near them.
With that in mind, it doesn't need to know all of the aliases for each city, knowing one preferred way of referring to it is sufficient. (But it looks like it always includes at least one city in each country.)
The other aliases for each zone are stored in the tzdata source code.
For example, the backward
file has
Link Asia/Kolkata Asia/Calcutta
so that people can use the new spelling or the old spelling.
All the other files in /usr/share/zoneinfo
are generated from this source code using zic
.
But there's not 600+ aliases, so why the big difference?
There's usually three versions of each timezone generated: posix
, right
, and your system's default.
$ cd /usr/share/zoneinfo
$ find right -type f | wc -l
581
$ find posix -type f | wc -l
581
$ find . \( -name posix -o -name right \) -prune -o -type f | wc -l
586
The tzcode Makefile
shows how those are generated, and mentions the reason for them: posix
ignores leap seconds, right
includes them.
See also:
Best Answer
You already know about
zic
, which compiles source zone files to the binaries you see in/usr/share/zoneinfo
. Tucked away at the bottom of the man page is a reference tozdump
, and this turns out to the tool you may be looking for (zdump - time zone dumper
).Here's some example output for the timezone used in France, showing the DST jump date/time for the two years 2017 and 2018.
To get the DST jumps for your own timezone is a little more fiddly, but this command will return them for the year 2017. Here you can see that I'm in the UK timezone with BST/GMT as its timezone labels (summer/winter time):
I'm not aware of a tool to decompile the binaries in
/usr/share/zoneinfo
back into rules files. You'd probably find it easier to start with the source rulesets; they're easily enough available.