This class tries the following methods of determining the local time zone:

$ENV{TZ}

It checks $ENV{TZ} for a valid time zone name.

/etc/localtime

If this file is a symlink to an Olson database time zone file (usually in /usr/share/zoneinfo) then it uses the target file's path name to determine the time zone name. For example, if the path is /usr/share/zoneinfo/America/Chicago, the time zone is "America/Chicago".

Some systems just copy the relevant file to /etc/localtime instead of making a symlink. In this case, we look in /usr/share/zoneinfo for a file that has the same size and content as /etc/localtime to determine the local time zone.

/etc/timezone

If this file exists, it is read and its contents are used as a time zone name.

/etc/TIMEZONE

If this file exists, it is opened and we look for a line starting like "TZ = ...". If this is found, it should indicate a time zone name.

/etc/sysconfig/clock

If this file exists, it is opened and we look for a line starting like "TIMEZONE = ..." or "ZONE = ...". If this is found, it should indicate a time zone name.

/etc/default/init

If this file exists, it is opened and we look for a line starting like "TZ=...". If this is found, it should indicate a time zone name.