DateTime::Infinite − Infinite past and future DateTime objects


version 1.52


my $future = DateTime::Infinite::Future−>new();
my $past = DateTime::Infinite::Past−>new();


This module provides two subclasses, "DateTime::Infinite::Future" and "DateTime::Infinite::Past".

The objects are in the "floating" timezone, and this cannot be changed.


The only constructor for these two classes is the "new()" method, as shown in the SYNOPSIS . This method takes no parameters.

All "get" methods in this module simply return infinity, positive or negative. If the method is expected to return a string, it returns the string representation of positive or negative infinity used by your system. For example, on my system calling "year()" returns a number which when printed appears either "Inf" or "−Inf".

This also applies to methods that are compound stringifications, which return the same strings even for things like "ymd()" or "iso8601()"

The object is not mutable, so the "set()", "set_time_zone()", and "truncate()" methods are all do-nothing methods that simply return the object they are called with.

Obviously, the "is_finite()" method returns false and the "is_infinite()" method returns true.

SEE ALSO mailing list


There seem to be lots of problems when dealing with infinite numbers on Win32. This may be a problem with this code, Perl, or Win32’s IEEE math implementation. Either way, the module may not be well-behaved on Win32 operating systems.

Bugs may be submitted at <>.

There is a mailing list available for users of this distribution, <>.

I am also usually active on IRC as ’autarch’ on "irc://".


The source code repository for DateTime can be found at <>.


Dave Rolsky <>


This software is Copyright (c) 2003 − 2020 by Dave Rolsky.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

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