phpman > perldoc > DateTime::TimeZone::Local::Unix(3pm)

Markdown | JSON | MCP    

NAME
    DateTime::TimeZone::Local::Unix - Determine the local system's time zone on Unix

VERSION
    version 2.51

SYNOPSIS
      my $tz = DateTime::TimeZone->new( name => 'local' );

      my $tz = DateTime::TimeZone::Local->TimeZone();

DESCRIPTION
    This module provides methods for determining the local time zone on a Unix platform.

HOW THE TIME ZONE IS DETERMINED
    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.

    Note: Some systems such as virtual machine boxes may lack any of these files. You can confirm
    that this is case by running:

        $ ls -l /etc/localtime /etc/timezone /etc/TIMEZONE \
            /etc/sysconfig/clock /etc/default/init

    If this is the case, then when checking for timezone handling you are likely to get an
    exception:

        $ perl -wle 'use DateTime; DateTime->now( time_zone => "local" )'
        Cannot determine local time zone

    In that case, you should consult your system man pages for details on how to address that
    problem. In one such case reported to us, a FreeBSD virtual machine had been built without any
    of these files. The user was able to run the FreeBSD tzsetup utility. That installed
    /etc/localtime, after which the above timezone diagnostic ran silently, *i.e.*, without throwing
    an exception.

SUPPORT
    Bugs may be submitted at <https://github.com/houseabsolute/DateTime-TimeZone/issues>.

SOURCE
    The source code repository for DateTime-TimeZone can be found at
    <https://github.com/houseabsolute/DateTime-TimeZone>.

AUTHOR
    Dave Rolsky <autarch AT urth.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2021 by Dave Rolsky.

    This is free software; you can redistribute it and/or modify it under the same terms as the Perl
    5 programming language system itself.

    The full text of the license can be found in the LICENSE file included with this distribution.

DateTime::TimeZone::Local::Unix(3pm)
NAME VERSION SYNOPSIS DESCRIPTION HOW THE TIME ZONE IS DETERMINED SUPPORT SOURCE AUTHOR COPYRIGHT AND LICENSE

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 18:07 @216.73.217.0
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top