DateTime::TimeZone::LoUser:Contributed PerDateTime::TimeZone::Local::Unix(3pm)
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@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.
perl v5.32.1 2021-10-DateTime::TimeZone::Local::Unix(3pm)
Generated by dwww version 1.14 on Fri Dec 5 02:31:31 CET 2025.