The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DateTimeX::Format - Moose Roles for building next generation DateTime formats

SYNOPSIS

        package DateTimeX::Format::Bleh;
        use Moose;
        with 'DateTimeX::Format';

        sub parse_datetime {
                my ( $self, $time, $env, @args ) = @_;
        }

        sub format_datetime {
                my ( $self, @args ) = @_;
        }

        my $dtxf = DateTimeX::Format::Bleh->new({
                locale       => $locale
                , time_zone  => $time_zone
                , debug      => 0|1
                , defaults   => 0|1
        });

        $dtxf->debug(0);
        $dtxf->time_zone( $time_zone );
        $dtxf->locale( $locale );
        $dtxf->defaults(1);

        my $dt = $dtxf->parse_datetime( $time, {locale=>$locale_for_call} );

        my $env = {
                time_zone  => $time_zone_for_call
                , locale  => $locale_for_call
        };
        my $dt = $dtxf->parse_datetime( $time, $env, @additional_arguments );
        my $dt = $dtxf->parse_datetime( $time, {time_zone=>$time_zone_for_call} )
        
        ## if your module requires a pattern, or has variable time-input formats
        ## see the Moose::Role DateTimeX::Format::CustomPattern
        package DateTimeX::Format::Strptime;
        use Moose;
        with 'DateTimeX::Format::CustomPattern';
        with 'DateTimeX::Format';

DESCRIPTION

This Moose::Role provides an environment at instantation which can be overriden in the call to parse_data by supplying a hash of the environment.

All of the DateTime based methods, locale and time_zone, coerce in accordence to what the docs of MooseX::Types::DateTime::ButMaintained say -- the coercions apply to both runtime calls and constructors.

In addition this module provides two other accessors to assist in the development of modules in the DateTimeX::Format namespace, these are debug, and defaults.

OBJECT ENVIRONMENT

All of these slots correspond to your object environment: they can be supplied in the constructor, or through accessors.

  • locale

    Can be overridden in the call to ->parse_datetime.

    See the docs at MooseX::Types::DateTime::ButMaintained for informations about the coercions.

  • time_zone

    Can be overridden in the call to ->parse_datetime.

    See the docs at MooseX::Types::DateTime::ButMaintained for informations about the coercions.

  • debug( 1 | 0* )

    Set to one to get debugging information

  • defaults( 1* | 0 )

    Set to 0 to force data to be sent to the module

HELPER FUNCTIONS

new_datetime( $hashRef )

Takes a hashRef of the name value pairs to hand off to DateTime->new

AUTHOR

Evan Carroll, <me at evancarroll.com>

BUGS

Please report any bugs or feature requests to bug-datetimex-format at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DateTimeX-Format. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc DateTimeX::Format

You can also look for information at:

ACKNOWLEDGEMENTS

Dave Rolsky -- provided some assistance with how DateTime works.

COPYRIGHT & LICENSE

Copyright 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.