1.35     2023-04-29

- This is the same as 1.34.

- The code now explicitly handles non-integer seconds values. This fixes the
  confusing things that timelocal() does with non-integer seconds but does not
  turn the seconds value into an integer. Based on a bug report from Dmitriy
  Shamatrin. GH #18.


1.34     2023-03-25 (TRIAL RELEASE)

- Fix for test failures seen on 32-bit systems with older Perl versions.


1.33     2023-02-12 (TRIAL RELEASE)

- Fix for breakage on (some?) 32-bit platforms. If an integer calculation done
  internally overflowed all calls to this module's subs could error with "Day
  too big - 105412 > -2147483648". This fix reduces the range of acceptable
  epochs but should make the module usable again on such systems.


1.32     2023-02-12 (TRIAL RELEASE)

- This is an alternative to the changes in the 1.31 release. Instead of
  restoring "use integer", the code now explicitly handles non-integer seconds
  values. This fixes the confusing things that timelocal() does with
  non-integer seconds but does not turn the seconds value into an
  integer. Based on a bug report from Dmitriy Shamatrin. GH #18.


1.31     2021-11-09 (TRIAL RELEASE)

- Restored the use of "use integer", which was removed in 2010 as part of the
  change to support a 64-bit time_t in Perl, regardless of the platform. The
  timelocal() sub does very confusing things with non-integer seconds because
  internally it calls the system's localtime() function. And that localtime()
  function may strip off the non-integer portion of the seconds value. This
  leads to extremely confusing results because of the math that this module
  does on the return value of localtime() internally.

  With "use integer" back in effect the results are much more
  predictable. Based on a bug report from Dmitriy Shamatrin. GH #18.


1.30     2020-01-26

- Identical to 1.29.


1.29     2020-01-18 (TRIAL RELEASE)

- Added timelocal_posix() and timegm_posix() subs. These are _exact_ opposites
  of Perl's localtime() and gmtime(), meaning that a round trip between the
  two pairs always produces the same value.


1.28     2018-06-12

- Some tests which required support for epoch values larger than 2**32 were
  not being skipped when the underlying Perl did not support that.


1.27     2018-06-09

- This release is identical to 1.26 except that it is a stable release, not a
  trial.

- Fixed the tests so they will not break in the year 2020. The tests were
  passing in 2-digit years on the assumption that a year like "70" would be
  treated as 1970, but starting in 2020 this would be treated as 2070
  instead. Reported by Bernhard M. Wiedemann. RT #124787.

- Added timelocal_modern and timegm_modern variants as optional exports. These
  versions do not munge years at all. They treat the year value that they are
  given exactly as-is.


1.26     2018-05-20 (TRIAL RELEASE)

- Fixed the tests so they will not break in the year 2020. The tests were
  passing in 2-digit years on the assumption that a year like "70" would be
  treated as 1970, but starting in 2020 this would be treated as 2070
  instead. Reported by Bernhard M. Wiedemann. RT #124787.

- Added timelocal_modern and timegm_modern variants as optional exports. These
  versions do not munge years at all. They treat the year value that they are
  given exactly as-is.


1.25     2016-11-17

- Reduce memory usage by only loading Config if needed and not importing from
  Carp. Based on PR #2 from J. Nick Coston.


1.24     2016-08-13

- Set the INSTALLDIRS to 'perl' for Perl 5.10 and earlier. Without this, you
  can upgrade Time::Local from CPAN but perl will not see the upgraded
  version. Reported by Olivier Mengué. RT #116825.


1.2300  2012-07-20

- Doh, fix the repo & bugtracker info in the META files.


1.2200  2012-07-09

- Explicitly require Test::More 0.88+ for tests.


1.2100  2012-07-09

- A seconds value greater than 59 but less than 60 caused timegm() and
  timelocal() to croak. Now we allow any value that's less than 60. RT #78189.


1.2000  2011-01-02

- Release 1.1902 as a stable version without any further chances.


1.1902  2010-12-16  TRIAL RELEASE

- Merge all changes from blead perl.

- This release removes `use integer` from the code, which means that if you
  pass in non-integer values for seconds, you will get a non-integer value
  back.

- Try to restore compatibility with older perls, which don't have a 64bit
  capable localtime/gmtime.


1.1901  2008-11-01

- Test fixes only. The tests planned the wrong number of tests on
  32-bit platforms, causing failures.


1.19    2008-11-01

- The calculation of the maximum integer size was using
  $Config{intsize} when it should use $Config{ivsize}. Apparently on a
  64-bit platform intsize can be 4 when ivsize is 8. Based on a patch
  from Jan Dubois.


1.18    2007-10-31

- Added pod and pod coverage tests.

- Doing a new release to provide a conformant META.yml file.

- This release contains no code changes from 1.17.


1.17    2007-01-25

- I made the same test count mistake as was in 1.14 again. This
  release fixes the test count (again) when running on a system that
  doesn't support negative epochs (like Win32). Patched by Kenichi
  Ishigaki (again).


1.16    2007-01-23

- The leap year fix in 1.14 was pretty broken, as it checked after
  converting the year to Perl's internal (year - 1900) format.


1.15    2007-01-22

- Fix Local.t test count when running on a system that doesn't support
  negative epochs (like Win32). Patched by Kenichi Ishigaki.


1.14    2007-01-21

- Fixed leap year check to produce the right answer for years outside
  of the 32-bit epoch range (such as 1900 and 2100). See rt.perl.org
  #31241. Reported by Nathan Zook.


1.13    2006-08-09

- Switched to using Test::More for the tests.

- Fixed a bug that occurred around the DST change for Europe/London
  (and probably other time zones with a positive UTC offset). If
  given, the hour immediately after the change (2:00 AM for
  Europe/London), then the returned epoch was 3600 seconds too
  large. Reported by Roger Picton. See RT #11662.


1.12_01 2006-03-31

- Reverted changes from 1.07_90 that attempted to extend range of
  allowable epoch values around edge cases. It turns out that this was
  causing integer overflows

- In one error case, the module could warn and then croak. I changed
  it to simply croak with the whole message. Based on a patch by
  Michael Schwern from rt.perl.org #36268.

- Removed the code from the docs that implied that the *_nocheck
  variants were created for doing date math. They're just for speeding
  things up when you have known valid data. If you pass them invalid
  data, you'll probably get an incorrect answer. See #31421 on
  rt.perl.org for discussion.


1.12    2005-12-18

- Explicitly turn off negative epoch testing on VMS.  Change #24310
  from bleadperl, Craig Berry.

- In the test suite when checking on whether negative epochs are
  allowed, use 3 days before the epoch as a test, because just one
  hour before may give false positives (for example on Win32 with the
  Borland compiler).

- Reverted an earlier change that slightly extended the range of
  values for which timelocal worked (by about a day in either
  direction) because it could cause an incorrect answer for certain
  epoch values on the date of a DST change.  Reported by Gisle Aas.


1.11    2005-02-09

- Try to make detection of supported epoch range a little smarter.
  The detection was allowing negative epochs on Win32 but apparently
  this doesn't work, and trying to pass a pre-epoch date in just
  causes a lot of warnings.  This silences warnings during the tests
  on windows.


1.10    2004-04-20

- Fix compilation failure with older Test.pm (including the versions
  shipped with 5.6.1 and earlier perls).  Ticket #6079 on rt.cpan.org.
  Patch by somebody who didn't give their name on rt.cpan.org ;)


1.09    2004-04-07

- Fixed a bug in the test suite that led to timegm not getting tested
  properly, and timelocal getting tested twice for the same values.


1.08    2004-04-07

- Changed occurences of "UTC" to "GMT" in order to agree with POSIX,
  which defines the epoch in terms of GMT.

- Documented the behavior of timelocal() when given a local time that
  does not exist (due to a DST change).  Suggested by Nick
  Ing-Simmons.

- Don't expect edge case tests to pass on AIX 4.3, since the OS is
  obsolete.  Patch from core passed on my H. Merijn Brand.


1.07_94  2003-12-11

- More changes from Henrik Gulbrandsen to make sure that very large
  negative epoch values are handled properly on platforms that can
  handle negative epoch values at all.

- Make sure that we really do always return the earliest of two local
  times when DST makes conversion from GMT to local time ambiguous.
  Again by Henrik.

- Fix a bug that could have occurred if the maximum or minimum integer
  size on a platform was divisible by 86,400.  Also by Henrik.


1.07_93  2003-07-23

- Henrik's code explicitly didn't work with negative epoch values,
  which is not good.  Now we assume that they are allowed, except on
  MacOS, which is known to use an unsigned int for time_t.

- Document that dates before the epoch should work on systems which
  support negative epoch values, but that we can't test them because
  we don't know _which_ systems support this.


1.07_92  2003-07-23

- Removed tests which relied on the zoneinfo database to be up to date
  and accurate in order to pass, since we have absolutely no control
  over this whatsoever.  I hate external dependencies.


1.07_91  2003-07-22

- Henrik refined his edge case fix to work on Win32, which apparently
  dislikes large negative signed ints.  Tests now pass on Win32.  More
  testing on other platforms is appreciated.

- Documented Time::Local's behavior when timelocal is called with an
  ambiguous local time.  Some local times occur twice on the same day
  because a DST change causes the clock to move backwards one hour
  earlier.  See "Ambiguous Local Times" in the docs for more details.
  Closes perlbug 7822.

- Removed the statement under "BUGS" that the proclivity to croak() is
  probably a bug.  It's not a bug, and it sure isn't going to change
  at this point in time, anyway!


1.07_90  2003-07-15

- Fixed behavior for edge cases like timegm(gmtime(0x7FFF_FFFF)),
  which should work even on platforms where time_t is signed.  Patch
  from Henrik Gulbrandsen.


1.07  2003-06-10

- Set INSTALLDIRS=perl in Makefile.PL, as suggested by Michael
  Schwern, who heard it from Sergio Brandano.


1.06  2003-06-04

- A bug in the handling of negative offsets from UTC could lead to the
  return of invalid times during a DST transition.  This is from a
  patch by Dave Mitchell currently in bleadperl.  See
  http://bugs6.perl.org/rt2/Ticket/Display.html?id=19393 for details.
  Thanks to Rafael Garcia-Suarez for pointing this out to me.

- Updated the AUTHORS section to include the actual authors.  Thanks
  to Graham Barr for telling me who there are.

- Added SUPPORT section which tells people to use bugs.perl.org or
  perlbug, since I read p5p and I want to make sure that the core and
  this code stay in sync.

- Clarified docs to say that dates before the system's epoch may or
  may not work, because POSIX only requires support for positive
  time_t values.


1.05  2003-06-03

This version is nearly identical to version 1.04, which is included in
the Perl core, but it removes the use of "our" in order to make the
code backwards compatible with Perl 5.00503.  It probably works with
earlier versions of Perl as well, but I don't have anything earlier
than 5.00503 installed.

Changes made from the core version include:

- Packaged for distribution on CPAN.

- Added an AUTHOR section to the docs.

- Clarified some points in the docs, particularly the fact that this
  module uses the local system's epoch, not the Unix epoch, contrary
  to what the documentation suggests.

- Disabled tests for timelocal.pl Perl4 library since it's not
  included in standalone distribution.
