DateTime::TimeZone::Local
Section: User Contributed Perl Documentation (3pm)
Updated: 2024-02-02
Index
Return to Main Contents
NAME
DateTime::TimeZone::Local - Determine the local system's time zone
VERSION
version 2.60
SYNOPSIS
my $tz = DateTime::TimeZone->new( name => 'local' );
my $tz = DateTime::TimeZone::Local->TimeZone();
DESCRIPTION
This module provides an interface for determining the local system's time zone.
Most of the functionality for doing this is in OS-specific subclasses.
USAGE
This class provides the following methods:
DateTime::TimeZone::Local->TimeZone()
This attempts to load an appropriate subclass and asks it to find the local
time zone. This method is called by when you pass ``local'' as the time zone name
to "DateTime:TimeZone->new()".
If your OS is not explicitly handled, you can create a module with a name of
the form "DateTime::TimeZone::Local::$^O". If it exists, it will be used
instead of falling back to the Unix subclass.
If no OS-specific module exists, we fall back to using the Unix subclass.
See DateTime::TimeZone::Local::Unix, DateTime::TimeZone::Local::Android,
DateTime::TimeZone::Local::hpux, DateTime::TimeZone::Local::Win32, and
DateTime::TimeZone::Local::VMS for OS-specific details.
SUBCLASSING
If you want to make a new OS-specific subclass, there are several methods
provided by this module you should know about.
$class->Methods()
This method should be provided by your class. It should provide a list of
methods that will be called to try to determine the local time zone.
Each of these methods is expected to return a new "DateTime::TimeZone" object
if it can successfully determine the time zone.
$class->FromEnv()
This method tries to find a valid time zone in an %ENV value. It calls "$class->EnvVars()" to determine which keys to look at.
To use this from a subclass, simply return ``FromEnv'' as one of the items from
"$class->Methods()".
$class->EnvVars()
This method should be provided by your subclass. It should return a list of env
vars to be checked by "$class->FromEnv()".
Your class should always include the "TZ" key as one of the variables to
check.
$class->_IsValidName($name)
Given a possible time zone name, this returns a boolean indicating whether or
not the name looks valid. It always return false for ``local'' in order to avoid
infinite loops.
EXAMPLE SUBCLASS
Here is a simple example subclass:
package DateTime::TimeZone::SomeOS;
use strict;
use warnings;
use base 'DateTime::TimeZone::Local';
sub Methods { qw( FromEnv FromEther ) }
sub EnvVars { qw( TZ ZONE ) }
sub FromEther
{
my $class = shift;
...
}
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) 2023 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.
Index
- NAME
-
- VERSION
-
- SYNOPSIS
-
- DESCRIPTION
-
- USAGE
-
- DateTime::TimeZone::Local->TimeZone()
-
- SUBCLASSING
-
- $class->Methods()
-
- $class->FromEnv()
-
- $class->EnvVars()
-
- $class->_IsValidName($name)
-
- EXAMPLE SUBCLASS
-
- SUPPORT
-
- SOURCE
-
- AUTHOR
-
- COPYRIGHT AND LICENSE
-
This document was created by
man2html,
using the manual pages.
Time: 12:32:44 GMT, March 28, 2024