This directory contains tooling to help when debugging time zone issues on
Android.

dump-tzdata.py
 - A tool that takes a tzdata file and splits it into component tzfiles,
   zone.tab, etc. Run it with --help for usage. The individual tzfiles can
   be inspected with tools like zdump, for example with "zdump -V <tzfile>"

   It also dumps human-readable CSV files of the (v1) content currently used by
   Android's ZoneInfo class. These can be inspected and compared with dumps from
   other tzdata files easily using your favourite text diffing tool.

visualize_zone_trees.py
  - A tool that visualizes time zones, specifically when time zones "sync up"
    (i.e. stop being distinct). Time zone IDs are created in the tzdb whenever
    there is a distinction between time zones, e.g. if a sub-region moved
    from being the same as one major region to be the same as a different major
    region, then a new time zone ID is required to represent the sub-region's
    behavior because neither of the IDs for the major region describe the time
    zone behavior of the sub-region throughout time. Once created, zone IDs
    persist in the tzdb forever. Zone trees are used to determine if zone IDs
    are still needed in order to represent relevant distinctions, e.g. does
    Android still need to offer a choice between two zones that will be the
    same from time X until the end of time? If the answer is no, one of the
    zones can be used / shown to users and the other need not be.
