Upstream changes:
1.01 2013-04-01
- Fixed test failures on older Perls.
1.00 2013-03-31
- Bumped the version to 1.00. This is mostly because my prior use of both X.YY
and X.YYYY versions causes trouble for some packaging systems. Plus after 10
years it's probably ready to be called 1.00. Requested by Adam. RT #82800.
- The %j specifier for strftime was not zero-padding 1 and 2 digit
numbers. Fixed by Christian Hansen. RT #84310.
- The truncate method was sloppy about validating its "to" parameter, so you
could pass things like "years" or "month whatever anything goes". The method
would accept the parameter but then not actually truncate the object. RT
#84229.
- Previously, if a call to $dt->set_time_zone() failed it would still change
the time zone of the object, leaving it in a broken state. Reported by Bill
Moseley. RT #83940.
- DateTime::Infinite objects should no longer die when methods that require a
locale are called. Instead, these methods return undef for names and
Inf/-Inf for numbers. This affects methods such as day_name() as well as
CLDR and strftime formats. When a locale-specific format is used (like the
"full" datetime format) it uses the en_US format. Reported by Paul
Boldra. RT #67550.
Upstream changes:
0.78 2012-11-16
- Reverted the change to round nanoseconds up or down in various
situtations. Now we always round down. This avoids the case where rounding
up would require us to then increment the second value (which could then
require us to increment the minute, which could then require us to increment
the hour, which could then ...).
In other words, we don't want to round 2011-12-31T23:59:59.999999 up to
2012-01-01T00:00:00, because that would be insane.
This applies to the return values for ->microsecond, ->millisecond, and the
%N specifier for strftime.
Patch by Martin Hasch. RT #79845.
to 0.7600.
Upstream changes:
0.76 2012-07-01
- The DateTime->subtract method ignored the end_of_month parameter. Patch by
Chris Reinhardt. RT #77844.
0.75 2012-06-11
- The epoch for years 1-999 was broken because Time::Local is "clever". A pox
on all clever APIs, I say! Reported by Christian Hansen. RT #77719.
- Shut up compilation warning from 5.17.x. Reported by Tom Wyant. RT #77490.
0.74 2012-03-22
- Small packaging fix for metacpan's benefit. No need to upgrade.
0.73 2012-03-17
- Change tests to work with Zefram's entirely rebuilt DateTime::TimeZone
distribution, which will replace the current implementation. Patch by
Zefram. RT #75757.
0.72 2012-01-05
- Remove Test::DependentModules from the dep list. This is used by some
author-only tests. Reported by Zefram.
0.71 2012-01-05
- There will be a new leap second on June 30, 2012.
0.70 2011-05-09
- Really fix %N, finally. This was breaking the DateTime::Event::Recurrence
test suite. Patch by Dagfinn Ilmari Mannsåker.
0.69 2011-05-03
- When a DateTime object had nanoseconds == 0, the %N strftime specifier
always returned "0" regardless of the precision requested. Reported by John
Siracusa. RT #67928.
0.68 2011-04-25
- The tests for %N in the last release relied on the vagaries of floating
point math on a 64-bit system. Now the from_epoch() method just uses string
operations to separate the epoch into an integer value and a mantissa. This
avoids floating point insanity. Reported by zefram. RT #67736.
0.67 2011-04-24
- The %N strftime specifier simply truncated nanoseconds, rather than rounding
them. Reported by Michael R. Davis. RT #66744.
- The %U strftime specifier was off by one in years where January 1st was a
Sunday. Patch by Christian Hansen. RT #67631.
- The %W strftime specifier was off by one in years where January 1st was a
Sunday or Monday. Patch by Christian Hansen. RT #67631.
- Some small optimizations from Christian Hansen. The biggest impact is for
calculating week_of_month, week_number, and week_year.
- This distro now requires Perl 5.8.1+ (it implicitly did this anyway now that
Params::Validate is 5.8.1+).
0.66 2010-11-26
- A bunch of documentation cleanup. No code changes.
0.65 2010-10-25
- Actually put the right $VERSION in every package. No other changes.
0.64 2010-10-25
* All the constructors besides new() ended up calling new(), which meant that
these constructors went through the parameter validation code
twice. Avoiding this should make everything that constructs a new object
(besides new() itself) a little faster.
** This change breaks DateTime::Fiscal::Retail454, but no other modules, to
the best of my knowledge. **
- The t/39no-so.t test failed for some people. I can't reproduce it, but this
release will hopefully fix the problem. Patch by Tokuhiro Matsuno. RT
#62061.
- Added a section on the DateTime Project ecosystem to the docs. Addresses RT
#60930.
- Fixed wiki links in the docs now that the wiki has moved to a new wiki
platform.
- Restored some of the dzil-ification. The repo now has a very minimal
Build.PL file which is just enough to build the XS code and run the
tests. This fixes the total lack of prereqs in the META.* files. Reported by
Bjørn-Olav. RT #62427.
0.63 2010-09-24
- Actually bump the version in the module files. Oops. Reported by bricas.
Upstream changes:
0.62 2010-09-23
- Don't try to test with DateTime::Format::Strptime unless we have a
relatively recent version. Should fix some test failures.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
Pkgsrc changes:
- adjust dependencies
Upstream changes:
0.60 2010-07-03
- By default, Dist::Zilla generates a Build.PL that requires Module::Build
0.3601+, but this distro really doesn't need any particular version.
Pkgsrc changes:
- adjust dependencies
- adjust license
Upstream changes:
0.59 2010-06-29
- More packaging fixes. This release makes sure that POD only shows up in the
right files. In 0.56 through 0.58, some POD in the wrong place confused the
search.cpan.org POD display code, and the main module's documentation wasn't
viewable.
0.58 2010-06-28
- Versions 0.56 and 0.57 did not build XS properly when installing.
0.57 2010-06-26
- Make DateTime::LeapSecond have the same $VERSION as every other .pm file.
0.56 2010-06-26
- The set_formatter() method did not return the DateTime object, and did not
actually validate the value provided for the formatter. Based on a patch by
Andrew Whatson. RT #58506.
- Improved docs on floating time zone. Based on suggestions by Michael
Svoboda. RT #56389.
- Added mention of end-of-month algorithms to docs on DateTime math. Based on
a patch by Michael R. Davis. RT #58533.
- License is now Artistic 2.0.
pkgsrc changes:
- Adjust build/test dependencies
Upstream changes:
0.55 2010-03-16
- Get all tests passing on 5.6.2. Thanks to Zefram for help spotting the
problems.
- Moved code to my hg repo at http://hg.urth.org/hg/DateTime.pm.
pkgsrc changes:
- Adjust license definition
- Adjust dependencies
Upstream changes:
0.54 2010-03-14
- Bumped the DateTime::TimeZone prereq to 1.09 to force people to use a modern
version. Previously the minimum version was 0.59, and there have been a lot
of bug fixes since then.
- String overloading now extends to string comparison, so a DateTime object
can be compared to any string. In other words
if ( $dt eq $string ) { ... }
will simply stringify $dt and then do a normal string-is-equals
check. Previously, this would blow up unless both operands were a DateTime
object.
Note that future versions of Test::More (0.95_01+) will no longer stringify
arguments to is(), which means that older versions of DateTime may cause new
test failures when you upgrade Test::More. It is highly recommended that you
upgrade DateTime before upgrading to Test::More 0.95_01+.
Patch by Michael Schwern. RT #55453.
- Allow passing end_of_month setting to $duration->inverse(). Requested by
John Siracusa. RT #53985.
Pkgsrc changes:
- Adjust dependencies
Upstream changes:
0.53 2009-12-06
- Added Test::Exception to build_requires.
0.52 2009-12-05
- Numeric to ->new() are now all validated to make sure they are
integers. Previously, things like "month => 11.2" would have been
allowed. Based on a bug report from Max Kanat-Alexandar. RT #45767.
- Added a warning to the docs suggesting that you cache the locale time zone
if you need to make many DateTime objects in the local zone. Looking up the
local zone can be fairly expensive. RT #46753.
Pkgsrc changes:
- Switch PERL5_MODULE_TYPE to Module::Build
Upstream changes:
0.51 2009-11-01
- Switched to Module::Build. To force a non-XS build, start the build
process with "perl Build.PL --pp".
- POD-related tests are only run for the maintainer now.
- Fixed handling of negative years in CLDR formatting for "y" and "u"
patterns. Note that the LDML spec says nothing about how this should work,
so I took my best guess.
- Updating package for p5 DateTime modules from 0.49 to 0.50
Upstream changes:
0.50 2009-05-11
- Tests were failing on Win32 because they attempted to use a negative
epoch. Fixed so that these tests are skipped. Fixes RT #45966.
- Updating package for p5 DateTime modules from 0.47 to 0.49
- Setting License to gnu-gpl-v2
- Removing unused / perl core dependencies
Upstream changes:
0.49 2009-05-04
- A bug in the test code for handling overloaded objects in from_epoch
resulted in a test failure on Perl 5.8.x. This release contains no
changes besides a test code fix.
0.48 2009-05-04
- Some of the accessors (the "main" ones like year(), month(), day(),
etc) now warn if they are passed a value. Patch from Shawn
Moore. Fixes RT #6979.
- DateTime::Duration expected DateTime to be loaded and used some
constants from it, but did not explicitly "use DateTime". Reported
by Jeff Kubina. RT #44740.
- The CLDR formatting for "c" and "cc" was incorrectly using the local
day of the week. This meant that it gave the wrong result for
locales where Monday is not considered the first day of the
week. Reported by Maros Kollar. RT #45007.
- DateTime->from_epoch did not allow an object which overloaded
numification as the epoch value. Patch by Michael Schwern. RT
#45653.
- Fixed how datetime subtraction is handled for some cases around DST
changes. This had been improved back in 0.30, but there were still
bugs. RT #45235.
- Updating package for p5 module DateTime to 0.47
- set license to artistic-2.0
Upstream changes:
0.47 2009-03-01
- The handling of CLDR format 'j' and 'jj' was backwards, using 24
hour time for locales that wanted 12 hour, and vice versa. Reported
by Maros Kollar.
- The CLDR formatting was missing support for lower-case "q"
patterns. Reported by Maros Kollar.
0.46 2009-02-28
- Added a duration_class method for the benefit of DateTime.pm
subclasses. Patch by Shawn Moore.
Pkgsrc changes:
o Adjust dependencies to suit new dependencies
Upstream changes:
0.4501 2008-11-25
- The epoch() method got broken in the recent shuffling between
Time::Local and Time::y2038. Unfortunately, the tests to catch this
also got lost in the shuffle. Reported by Avianna Chao.
0.45 2008-11-11
- Reverted the changes to use Time::y2038, on the recommendation of
Michael Schwern (the author of said module), because it is not yet
stable. This may come back in a future release.
0.4401 2008-11-03
- In order to handle epochs > 2**32 properly on a 32-bit machine, we
also need to import gmtime from Time::y2038. This changes fixes a
whole bunch of test failures seen with 0.44.
0.44 2008-11-01
- XS-capable DateTime.pm now uses Time::y2038 instead of
Time::Local. This lets it handle epochs up to 142 million years
before and after the Unix epoch.
- Fixed a compiler warning with Perl 5.10.0.
- Fixed docs for year_with_era, which had AD and BC
backwards. Reported by Vynce Montgomery. RT #39923.
- The format_cldr() method did not format the "yy" format properly
when the year ended in "0X". Reported by Wilson Santos. RT #40555.
0.4305 2008-10-03
- The pure Perl version of this module did not know about the end of
2008 leap second. Reported by James T Monty.
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
Pkgsrc changes:
o Change MAINTAINER to pkgsrc-users@, as per communication with maintainer
Upstream changes:
0.4304 2008-07-13
- Fix test failures when tests are run with DateTime::Locale
0.41. Reported by David Cantrell via CPAN Testers.
0.4303 2008-07-12
- There is a new leap second coming at the end of 2008.
0.4302 2008-05-20
[ BUG FIXES ]
- The 41cldr_format.t test blew up on Perl 5.6.x, because of a bug in
the test code.
0.4301 2008-05-18
[ BUG FIXES ]
- In the 0.43 release, I forgot to change the DateTime::Locale
dependency to require DT::Locale 0.40.
0.43 2008-05-18
[ *** BACKWARDS INCOMPATIBILITIES *** ]
* Dropped support for Perl 5.005.
[ ENHANCEMENTS ]
- Added support for formatting the CLDR date pattern language, which
is much more powerful than strftime. This, combined with the latest
DateTime::Locale, makes the localized output much more correct.
[ BUG FIXES ]
- The hour_1() method was returning the real hour + 1, rather than
just representing midnight as 24 instead of 0. This bug fix will
probably break someone's code.
0.42 2008-02-29
[ BUG FIXES ]
- The 17set_return.t tests failed on leap days, like today. Reported
by Duncan Ferguson. RT #33695.
0.41 2007-09-10
[ BUG FIXES ]
- The 13strftime.t test was failing when DateTime::Locale 0.35 was
installed. The test has been adjusted and we now list DT::Locale
0.35 as the minimum version. Reported by David Cantrell.
0.40 2007-08-30
[ BUG FIXES ]
- A custom formatter would be lost after a call to set() or
truncate(). Reported by Kjell-Magne Øierud. RT #28728.
- The truncate() method docs said it accepted "second" as a parameter,
but it didn't actually do the right thing with it. Now it always
truncates nanoseconds to 0 for any parameter it is passed.
0.39 2007-07-17
[ BUG FIXES ]
- Yet more changes to how infinity is handled and tested. This passes
for me on 32-bit Win XP and 64-bit Linux, which is promising. Patch
by Yitzchak Scott-Thoennes. RT #22392.
0.38 2007-06-30
[ BUG FIXES ]
- Require Test::Pod::Coverage 1.08 in pod-coverage.t, since we use
all_modules, which was only exported as of version 1.08. Reported by
MATSUNO Tokuhiro. Fixes RT #26594.
- Fixed a bad link to the old FAQ location in the docs. Reported by
Ric Signes. Fixes RT #26846.
[ ENHANCEMENTS ]
- DateTime.pm now explicitly overloads string comparison. This was
done so that comparing a DateTime.pm object to a string returns
false, rather than throwing an exception. Reported by Chris
Dolan. Addresses RT #26085.
0.37 2007-03-30
[ BUG FIXES ]
- Require DateTime::Locale 0.34, which fixes a problem that manifested
when thawing a DateTime.pm object. See
http://www.mail-archive.com/datetime@perl.org/msg05633.html for some
discussion of this.
- Added pod coverage tests, and added some POD for undocumented
methods as a result.
[ ENHANCEMENTS ]
- This distro is now GPG-signed, per RT #24776.
0.36
[ BUG FIXES ]
- For infinity, use 100 ** 1000 instead of 100 ** 100 ** 100. This may
fix the problems with infinity on some platforms (or may
not). Suggested by Bjorn Tackmann. See RT #17390, #19626, and
#22392.
- Require DateTime::TimeZone 0.59, which includes a similar fix.
0.35 2006-10-22
[ ENHANCEMENTS ]
- Added several new methods for getting locale-based data, era_abbr(),
era_name(), quarter_abbr(), and quarter_name(). The era() method
returns the same data as era_abbr(), but is deprecated.
0.34 2006-08-11
[ BUG FIXES ]
- DateTime's code to fall back to the pure Perl implementation was
broken in most cases, making it fairly useless. Reported by Adam
Kennedy and Brendan Gibson.
- Under Perl 5.6.2 (and presumably 5.6.x), some of the tests
mysteriously failed. I tracked this down to a weird interaction
between DateTime's string overloading and
Test::Builder->cmp_ok(). See RT 19626.
0.33 2006-08-09 (the "Asia/Kaohsiung" release)
[ ENHANCEMENTS ]
- Attempting to do an overloaded operation (add, subtract, compare)
with an inappropriate argument (like $dt + 1) gives a more useful
error message.
[ BUG FIXES ]
- The fixes in 0.30 for subtract_datetime() crossing a DST change had
a bug. When subtracting two dates, both occurring on a DST change
date, but where the dates did not cross the change, the answer was
off by an hour. Reported by Chris Prather. See RT 20697.
- Borrowed a tweak from version.pm's Makefile.PL to make compiler
detection work with MSVC.
0.32 2006-07-24
[ BUG FIXES ]
- Change how C compiler detection is done in the Makefile.PL so it
does not rely on having make on the system. The new way should work
on (most?) Unix and Win32 systems. Suggested by David Golden. See RT
18969.
0.31 2006-05-21
[ ENHANCEMENTS ]
- Switched some uses of die() to Carp::croak(), where
appropriate. This should make error messages more useful in many
cases. Based on a suggestion by Max Maischein. See RT tickets 11692
& 18728.
[ BUG FIXES ]
- Removed all uses of UNIVERSAL::isa and UNIVERSAL::can as functions.
- Tweaked 20infinite.t test to give more useful output for some
failures, though it probably doesn't fix them. See RT 17390.
Changes from 0.27:
0.30 2005-12-22
[ ENHANCEMENTS ]
- Expanded and rewrote the docs on date math to try to explain exactly
how DateTime.pm works, and in particular cover the problems DST
introduces to various types of date math. The docs now also include
some specific recommendations on getting sane results from datetime
math.
- Added calendar_duration() and clock_duration() methods to
DateTime::Duration
- Explicitly override the stringification method for
DateTime::Infinite objects. They now stringify as whatever the IEEE
infinity and negative infinity numbers stringify to on your platform.
On Linux this is "inf" and "-inf". CPAN RT #16632.
[ BUG FIXES ]
- delta_md() and delta_days() did not always return correct values
when crossing a DST change.
- The pure Perl version of the code had a dependency ordering problem
where DateTime::LeapSecond depended on other pure Perl code that
wasn't yet available. I'm not sure how this ever worked.
- Remove mentions of leap second on 1971-12-31 from the docs, because
there was no leap second that day. Reported by Mike Schilli.
- If you added a second to a datetime that was on a leap second (like
2005-12-31T23:59:60) it got "stuck" and kept returning the same
datetime. Reported by Mike Schilli.
- Changes to the tests in 20infinite.t may fix failures seen on some
platforms and with new versions of Test::More (0.62 was known to cause
failures)
[ *** BACKWARDS INCOMPATIBILITIES *** ]
- The subtract_datetime() method switched back to using the local
portion of the date _and_ time, but it now accounts for days with DST
changes specially. This produces results that fix the bugs that were
fixed by previous subtraction changes in 0.28 and 0.29, but without
introducing even more bugs. The overall result should be sane, but
please see the docs for details.
0.2901 2005-07-04
- A leap second for the end of 2005 was announced.
0.29 2005-06-03
[ *** BACKWARDS INCOMPATIBILITIES *** ]
- When adding/subtracting a duration with months or days that crossed
a DST change, the result was based on the local time, not the UTC
time. For consistent results, it is necessary to use the UTC time
(but local date) for all date math. Reported by J. Alexander Docauer.
0.28 2005-02-27
[ ENHANCEMENTS ]
- The era names for the era() method are now retrieved from the
DateTime.pm object's associated locale. The old era() method, which
was hard-coded to use BCE and CE, is renamed secular_era(). The
christian_era() method remains the same.
[ BUG FIXES ]
- Fixed an embarassing bug in the subtract_datetime() method. It was
subtracting local times, not UTC, which caused bugs when doing
subtraction across a DST change. This method is used to implement
subtraction overloading, so that was affected as well. Reported by
Mike Schilli.
- The docs for the %U and %W strftime specifiers implied that these
should be zero-padded, but the code was not doing so. Reported by J
Docauer.
0.27 2005-01-31
[ ENHANCEMENTS ]
- Added local_rd_values() method for the benefit of other modules like
DateTime::Event::Recurrence.
0.26 2005-01-27
[ BUG FIXES ]
- The docs claimed that the delta_ms(), delta_md(), delta_days()
methods always returned a positive duration, but this was not true for
delta_md() or delta_days().
Collection.
The DateTime.pm module aims to provide a complete, correct, and easy
to use date/time object implementation. Currently it handles many date
calculations, date math (addition and subtraction), and provides
convenient methods for retrieving portions of a date/time.
This module properly supports the Olson time zone database, meaning
that historical time zone information, and more importantly, daylight
saving time rules, can be handled transparently, simply by setting the
correct time zone. This is done by using the DateTime::TimeZone
module.