1.79     2021-05-02

* Fix too-strict type checking for time zones. This module now uses the same
  check as DateTime itself, which allows for things that don't subclass
  DateTime::TimeZone as long as they provide the same API. Reported by
  E. Choroba. GH #30.


1.78     2020-12-15

* Fix tests for new failure caused by locale data changes in DateTime::Locale
  1.29. Reported by cthulhu8zombie. GH #28.

* Added a warning about using locale-specific patterns. Some of these patterns
  can change quite a bit as the locale data is updated, so using them for
  parsing does not produce stable results across time. This is what caused the
  test failures that this release fixes.


1.77     2020-02-29

* When the parsed string contained an invalid time zone offset (parsed with
  "%z") like "-9999", the error handling set in the parser's constructor was
  ignored and an exception was always thrown. Reported by x-qq. GH #25.


1.76     2019-02-07

[BACKWARDS INCOMPATIBILITIES]

* The ability to set the pattern, time_zone, and locale via accessor methods
  has been removed. This was deprecated over three years ago in version
  1.60. It also turns out that the setting was actually broken for a long time
  but no one seemed to notice, so I think it's safe to remove this feature.


1.75     2017-12-24

- Fixed tests to pass with blead Perl. Reported by James Keenan. GH #19.


1.74     2017-08-03

- Fix text to not rely on a very specific exception message from Specio. This
  was broken in 0.39. Reported by Slaven Rezić. GH #18.


1.73     2017-01-31

- The format_datetime now checks that the object it is given isa DateTime
  object. Implemented by Mohammad S Anwar. GitHub #17.


1.72     2017-01-24

- Require DateTime::Locale 1.05. This fixes some test failures seen on CPAN
  Testers. Also require DateTime::TimeZone 2.09 because you should really
  update this on a regular basis.

- Require Specio 0.33 to fix other test failures seen on CPAN (I hope).


1.71     2017-01-24

- By default, the word boundary checks added in 1.69 are now off. You can
  enable them by passing "strict => 1" to the constructor. This was reported
  as an issue by Toby Corkindale as GitHub #15.

- Switched from Params::Validate to Params::ValidationCompiler.


1.70     2016-12-10

- Altered the conversion specifier %z to accept ±HH, ±HHMM, ±HH:MM and Z.
  Previously only ±HHMM where accepted. PR from Christian Hansen, GitHub #13.


1.69     2016-12-04 (TRIAL RELEASE)

- The word boundary check supposedly added in 1.67 didn't really work
  properly, and still matched too much. For example, the pattern "%d-%m-%y"
  would match "2016-11-30" and turn it into November 16, 2030. This also had
  problems at the end of strings, so that the same pattern would improperly
  match "30-11-2016" as November 30, 2020. Reported by Erik Huelsmann. GitHub
  #11.

- Added docs for several formats which had long been supported but not
  documented. These are %P, %c, %x, and %X. Reported by Alexander
  Hartmaier. GH #10.


1.68     2016-05-08

- Author tests are no longer in t/. This makes running tests for non-authors
  much faster. Requested by Kent Fredric. RT #114237.


1.67     2016-03-31

- Fixed a regression introduced in 1.60. Older versions of this library would
  match dates pretty match anywhere in a string, so "%Y-%m-%d" would match a
  string like "abcd1234-12-30efgh". This is probably _too_ permissive, but we
  definitely want to match on word boundaries so that we match
  "log.2016-03-31". Based on a PR from YASUTAKE Kiyoshi. GitHub #3.


1.66     2016-03-27

- Added a zone_map constructor argument. This lets you supply a mapping for
  ambiguous time zone abbreviations. Based on a patch from Douglas Wilson. RT
  #74762.


1.65     2016-03-15

- Updated zone short name parsing to handle names like "+07", which were
  introduced in the latest IANA time zone database release.


1.64     2016-02-21

- Changed how a string that contains separate epoch and nanosecond fields is
  turned into a DateTime object in order to deal with changes coming in the
  next DateTime release.


1.63     2016-01-13

[BUG FIXES]

- The behaviour of silently ignoring text after the matching part was
  lost in the rewrite. This has been restored. Patch by Dagfinn Ilmari
  Mannsåker. RT #111155.


1.62     2015-12-19

[BUG FIXES]

- When on_error was set to something that did not die (including the default
  error handling), calling ->parse_datetime with some bad inputs could cause
  the module to error out internally by trying to call methods on an undefined
  value instead of returning undef. Reported by Mike Dorman. RT #110247.


1.61     2015-11-13

[BUG FIXES]

- If you loaded this module with warnings globally enabled ("perl -w", which
  you should never do), then you'd get a warning about the import subroutine
  being redefined. This broke the Package::DeprecationManager API for turning
  off deprecation warnings. This has been fixed in
  Package::DeprecationManager 0.15. Reported by Martin. RT #108871.


1.60     2015-11-07

- This release is identical to the prior trial release. The changes for the
  trial releases are reproduced below for convenience.

[BACKWARDS INCOMPATIBILITIES]

- The error messages for various types of failures have changed.

- The never-documented diagnostic parameter for the constructor has been
  removed.

- The never-documented feature to allow you to use arbitrary DateTime.pm
  methods in the parsing pattern has been removed. This never made much sense
  anyway, since most DateTime.pm methods are not constructor params, but they
  were used that way.

- Using the pattern, locale, and time_zone to set the respective attribute is
  now deprecated. Make a new object instead of changing one of these values.

[BUG FIXES]

- Fixed a warning from the tests with newer Perl versions. RT #107620.

- Clarified docs to note that %Y and %G require 4-digit years. Reported by
  Karen Etheridge. RT #103147.

- Using the 24-hour token (%H) with an AM/PM specifier (%p) now leads to an
  error if you try to parse something like "23:01 AM". Reported by Ric
  Signes. RT #92445.


1.59     2015-10-25 (TRIAL RELEASE)

- The previous release accidentally included an old version of Strptime.pm in
  the root dir, causing all sorts of chaos and test failures.


1.58     2015-10-18 (TRIAL RELEASE)

- This release is a substantial rewrite. Please test it and file bugs for any
  unintentional breakage.

* The error messages for various types of failures have changed.

* The never-documented diagnostic parameter for the constructor has been
  removed.

* The never-documented feature to allow you to use arbitrary DateTime.pm
  methods in the parsing pattern has been removed. This never made much sense
  anyway, since most DateTime.pm methods are not constructor params, but they
  were used that way.

* Using the pattern, locale, and time_zone to set the respective attribute is
  now deprecated. Make a new object instead of changing one of these values.

- Fixed a warning from the tests with newer Perl versions. RT #107620.

- Clarified docs to note that %Y and %G require 4-digit years. Reported by
  Karen Etheridge. RT #103147.


1.57     2015-10-04

- Make all tests pass with both the current DateTime::Locale and the upcoming
  new version (currently still in trial releases).


1.56     2014-08-07

- Recent DateTime::TimeZone changes broke the tests.

- Fixed Latin-1 content in test code. It's now UTF-8.


1.55     2014-08-07.

- Broken release. I deleted this from PAUSE.


1.54     2013-04-02

- Require DateTime.pm 1.00 because without it tests will break.


1.53     2013-04-02

- A fix in DateTime.pm 1.00 broke a test in this distro. Reported by Anthony J
  Lucas. RT #84371.


1.52     2012-07-01

- Shut up "unescaped braces in regex" warning from 5.17.0. RT #77514. Patch by
  Zefram.


1.51     2012-05-27

- Packaging cleanup, including listing Test::More as a test prereq, not a
  runtime prereq. RT #76128.


1.5000   2010-10-16

- This module did not recognize UTC as a valid time zone. Patch by Danijel
  Tašov. RT #59209.


1.4000   2010-06-28

- Actually update $VERSION in module file. Reported by David Wheeler.


1.3000   2010-06-26

- Specifiers which allowed for leading space before a number (like %e) would
  cause DateTime.pm to throw an error if the date being parsed actually
  contained leading space. Patch by Alex Vandiver. RT #58459.

- License is now Artistic 2.0


1.2000   2010-03-19

- Updated to use non-deprecated DateTime::Locale API


1.1000   2009-07-13 -- Regex Pattern

- If the pattern you pass in is a regular expression, that will be honored.

- Changed the locale tests to use require the latest version of Locale until
  the target stops moving.


1.0901   2009-05-16 -- Official release of 1.0900_01

1.0900_01 2009-04-18

- Makefile.PL changes for Windows users as per issue #16


1.0900   2009-02-22

- It seems that I also wasn't seeing notifications from RT (please don't use
  it, use the Gooogle project) so all the following are fixed:

    - 36672   Started failing mid May
    - 23313   Bug handling time zones like America/New_York
    - 25555   Module dies even when on_error is 'undef'
    - 23768   Olson timezone handling incorrect
    - 22450   locale test failing with bleadperl
    - 20487   nmake test_more fail (with patch); incorrect META.yml
    - 12071   format_datetime uses datetime locale rather than format locale
    - 11863   bug in DateTime::Format::Strptime 1.0601 when using %s

  - And a couple from Google:
    - #8      Add DateTime::Locale to documentation
    - #10     Parsing bug -- can't detect word boundry after month abbr

1.0800   2008-08-07

- It seems that I wasn't getting notifications from Google when people had
  reported bugs, so there's a pile of fixes in this release. Hopefully that
  fixes everyone's issues.

1.0702   2007-09-19

- Updated the META.yml file to have the correct 'resources' and match the
  latest spec

- Updated the docus with a 'resources' section that has the same information
  in it for readers of POD.

- This version ONLY changes the documentation and so it not a required update.


1.0701   2007-09-18

- Many people pointed out that while this module hadn't broken the tests for
  the French locale had. This is due to a new source for the data in
  DateTime::Locale.

- This version ONLY changes the tests and so it not a required update.


1.0700 Sat,  5 Nov 2005 09:44:10 +1100

- Mike Schilli pointed out that strings without time zones or constructors
  without a time zone should be returning a DateTime in the floating time zone
  rather than UTC.

- Jason Bodnar requested greater allowance for time zones in strings .. so
  I've now added the ability to use an Olson time zone identifier with
  %O. Note that this is a token specifically added to Strptime and it WILL NOT
  WORK with DateTime's strftime method.


1.0601 Wed,  1 Sep 2004 07:52:44 +1000

- Dave Faraldo and Jonathan Lefter pointed out that one of the new Locale
  tests in t/006... will fail on the 30th and 31st of the month as not all
  months have those days.  Patch supplied by Jonathan has been applied.

- This is just a test fix and doesn't alter the way the module runs in any
  way. If you already got 1.06 to run then you don't need this.


1.0600 Sat, 28 Aug 2004 15:02:47 +1000

- Fixed bug from RT (#7502) from dfaraldo@redhat.com that made validation fall
  over by assuming midnight always exists. The patch now assumes Midday exists
  (both he and I assume that DST will never start at midday anywhere anytime!)

- This is a major change and you should install this release if you ever use
  any time_zone other than floating or UTC. And if you don't use them today,
  you may tomorrow - so upgrade OK?


1.0500 Wed, 18 Aug 2004 17:24:32 +1000

- Adapted and applied patches from Jean Forget to allow day names and month
  names to have \W characters and to allow am/pm values from other locales

- Jean's patch also included some doc patches

- Patched the synopsis a Jean suggestion to demonstrate how to use the
  non-default error behaviors

- Added tests for these bugs

- Added t/more/* and the make test_more target so I can test every locale if I
  want to.

- It's over a year since I deprecated the language parameter so I've now
  removed it. You've had a year of warnings!

- This is a major change and you should install this release if you use any
  locale other than en.


1.0400 Sun, 10 Aug 2003 00:22:00 +1000

- Applied patches from Joshua Hoblitt to move the the brand new
  DateTime::Locale rather than the old ::Language modules

- Implemented %x, %X and %c for locale formats

- Fixed a bug on the two digit year determinator

- Added a test for locales known as 004locale.t

- This is a major change and you should install this release if you are using
  DateTime >= 0.14 (the first release with Locale)


1.0302 Sat, 28 Jun 2003 09:15:21 +1000

- Test 004 was failing on Windows due to the path delimiter being a backslash
  rather than a slash. This release should also fix Strptime for Mac users,
  although I've had no complaints from such users. (Myself being one of the
  only ones currently using Strptime AFAIK!) Thanks Ron Hill for the bug
  report.


1.0301 Wed, 25 Jun 2003 22:40:12 +1000

- Updated to handle the post 0.12 DateTime that now validates dates. Still
  handles old DateTime.


1.0300 Sat, 07 Jun 2003 10:40:23 +1000

- The calls to die() have changed by request of Dave Rolsky and Iain Truskett
  (Thanks!). We now allow each object to have its own behavior.

- The default behavior has been changed to returning undef.  This was
  requested by someone (tell me if it was you!) and made a lot of sense to me.

- Never released to CPAN


1.0200 Wed, 28 May 2003 21:02:03 +1000

- The docs for Time::Local talk about the 'proclivity to croak' which
  basically means the module croaks easily. So did this one until now.

  Until now, if you allowed a user to specify a pattern and they entered one
  that was non parsable, this module would croak causing your script to
  croak. This is a Bad Thing (tm).

  The behaviour now remains the same, however if you set
  $DateTime::Format::StrpTime::CROAK to false, methods will return undef
  rather than croaking.  $DateTime::Format::StrpTime::errmsg will tell you
  what went wrong.

  The default is to continue to croak. This means you have to delibrately turn
  it off. Hopefully you'll change you script to do this at the same time you
  change it to check the return values of the methods :)


1.0103 Wed, 28 May 2003 20:10:57 +1000

- Applied doc patches from Iain Truskett (Thanks!)

- Clarified parameter discrepancy between synopsis and docs (Thanks Chris
  Winters)


1.0102 Fri, 16 May 2003 07:28:18 +1000

- Fixed the same test as above. Think I actually succeeded this time!


1.0101 Tue, 13 May 2003 07:58:23 +1000

- Fixed a test that was broken if DateTime::TimeZone was not version 0.13 or
  above.


1.0100 Sun, 11 May 2003 13:54:36 +1000

- If we have the latest DateTime we run the test mentioned above

- Fixed my version format as advised by Iain Truskett if it still doesn't work
  it's because of me, not him

- Added the ability to handle nanoseconds as requested by Michael Goltze.

- Got Time Zones working, including mapping non-ambiguous TLAs offsets and
  Olsen names (the latter uses the %q token)


1.00.02 Tue, 29 Apr 2003 07:03:19 +1000

- Fixed a test that only worked in DateTime was from CVS

- Fixed two issues noted by Iain Truskett:

- Removed a diag() in test 1 that was just there for testing the test

- Added a linebreak to the end of the MANIFEST


1.00.01 Mon, 28 Apr 2003 07:12:01 +1000

- removed alien life-forms (characters that didn't ASCIIfy)

* No API change, just made it so it will install now!


1.00.00 Sun, 27 Apr 2003 17:56:27 +1000

- first CPAN release

- added tests

- should be 100% compatible with DateTime's strftime function