View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Evan Carroll > MooseX-Types-DateTime-ButMaintained > MooseX::Types::DateTime::ButMaintained



Annotate this POD



New  2
Open  1
View/Report Bugs
Module Version: 0.16   Source  


MooseX::Types::DateTime::ButMaintained - DateTime related constraints and coercions for Moose


Export Example:

        use MooseX::Types::DateTime::ButMaintained qw(TimeZone);
        has time_zone => (
                        isa  => TimeZone
                        , is => "rw"
                        , coerce => 1
        Class->new( time_zone => "Africa/Timbuktu" );
        Class->new( time_zone => "CEST" );

Namespaced Example:

        use MooseX::Types::DateTime::ButMaintained;
        has time_zone => (
                isa  => 'DateTime::TimeZone'
                , is => "rw"
                , coerce => 1
        Class->new( time_zone => "Africa/Timbuktu" );



A class type for DateTime.

from Num

Uses "from_epoch" in DateTime. Floating values will be used for subsecond percision, see DateTime for details.

from HashRef

Calls "new" in DateTime with the hash entries as arguments.


A class type for DateTime::Duration

from Num

Uses "new" in DateTime::Duration and passes the number as the seconds argument.

Note that due to leap seconds, DST changes etc this may not do what you expect. For instance passing in 86400 is not always equivalent to one day, although there are that many seconds in a day. See "How Date Math is Done" in DateTime for more details.

from HashRef

Calls "new" in DateTime::Duration with the hash entries as arguments.


A class type for DateTime::Locale::root with the name DateTime::Locale.

from Str

The string is treated as a language tag (e.g. en or he_IL) and given to "load" in DateTime::Locale.

from Locale::Maktext

The Locale::Maketext/language_tag attribute will be used with "load" in DateTime::Locale.


A class type for DateTime::TimeZone, this now as of 0.05 coerces from non-globally ambigious Olson abbreviations, using Olson::Abbreviations. This won't work for abbreviations like "EST" which are only unambigious if you know the locale. It will coerce from abbreviations like "CEST" though.

from Str

Treated as a time zone name or offset. See "USAGE" in DateTime::TimeZone for more details on the allowed values.

Delegates to "new" in DateTime::TimeZone with the string as the name argument.






Evan Carroll <>


Yuval Kogman <>

John Napiorkowski <jjn1056 at>


This module packages several Moose::Util::TypeConstraints with coercions, designed to work with the DateTime suite of objects.

This module started as a fork of MooseX::Types::DateTime. This history and explaination is as follows: In Janurary 2009, I began a project to bring DateTime::Format::* stuff up to date with Moose. I created a framework that would greatly eliminate redundant code named DateTimeX::Format. This project's adoption was slowed by then (and still currently) bundeled package MooseX::Types::DateTime. MooseX::Types::DateTime was a badly packaged extention of two modules the self-titled MooseX::Types::DateTime, and another random module MooseX::Types::DateTimeX. In Februrary of the same year, I repackaged the module MooseX::Types::DateTimeX with the authors blessing into a new package, for the purpose of removing its dependenices, namely Date::Manip, from MooseX::Types::DateTime.

Unfortunately, this just added confusion. Now, as of the time of writing MooseX::Types::DateTimeX is available as a package, and it is available as a module which will be installed by MooseX::Types::DateTime. The benefit of removing the dependency on MooseX::Types::DateTime was never realized and the patch that updates the dependencies, and the build system remains in rt still as of writing.

This module is just the MooseX::Types::DateTime without the requirement on DateTimeX::Easy (which requires DateTime::Manip). As of 0.05 this module supports globally unique Olson abbreviations, and dies when they are not globally unique.


        Copyright (c) 2008 Yuval Kogman. All rights reserved
        This program is free software; you can redistribute
        it and/or modify it under the same terms as Perl itself.

        Modifications (c) 2009 Evan Carroll. All rights reserved
        This program is free software; you can redistribute
        it and/or modify it under the same terms as Perl itself.
syntax highlighting: