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