|
|
| |
Date::Manip::Changes6(3) |
User Contributed Perl Documentation |
Date::Manip::Changes6(3) |
Date::Manip::Changes6 - changes in Date::Manip 6.xx
This describes the changes made to the Date::Manip module in the 6.xx series of
releases. Major changes are marked with asterisks (*).
For the most part, Date::Manip has remained backward compatible at
every release, but occasionally, a change is made which is backward
incompatible. These are marked with an exclamation mark (!).
#=head1 VERSION 6.90 (expected 2022-12-01) # #=head1 VERSION 6.89
(expected 2022-09-01) # #=head1 VERSION 6.88 (expected 2022-06-01) # #=head1
VERSION 6.87 (expected 2022-03-01)
- Change warn to carp
- All warnings are now issued with the carp command rather than warn.
Requested in GitHup pull request #18, but that request was not used
because it only changed the uses in the Date::Manip::Date module.
- Bug fixes
- Fixed a bug where the next/prev Date::Manip::Recur methods gave incorrect
results when there are no dates that match the criteria. (GitHub #36)
- Time zone fixes
- There were no new timezone fixes on 2021-06-01 or 2021-09-01, so no
releases made then.
Newest zoneinfo data (tzdata 2021e). (GitHub #37)
- Test fixes
- Missed some tests that were failing.
- Time zone fixes
- Newest zoneinfo data (tzdata 2021a).
- Language fixes
- Corrections and additions to Italian. Patch supplied by Leo Cacciari
(GitHub #33)
- Time zone fixes
- No new zoneinfo data so no release on 2020-09-01.
Newest zoneinfo data (tzdata 2020d). Requested by Shawn
Carroll (GitHub #32)
- Time zone fixes
- Newest zoneinfo data (tzdata 2020a).
- Messed up the 6.80 package. This release fixes it.
- Missed Changes entry for previous version.
- Reported by Tina Muller (GitHub #31)
- Time zone fixes
- Newest zoneinfo data (tzdata 2019c).
- Time zone fixes
- Newest zoneinfo data (tzdata 2019b).
- Documentation fixes
- Fixed a broken link. Mohammad S Anwar (GitHub #29)
- Time zone fixes
- Newest zoneinfo data (tzdata 2019a).
- Fixed bug in Date::Manip::Date::list_holidays.
- It was using 'now' instead of the stored date. Douglas DeStafeno
- Reordered TZ detection methods
- Moved checking the tzdata files to lower priority to avoid a pretty
unusual situation in docker. Sven Nierlein (GitHub #20)
- Time zone fixes
- Newest zoneinfo data (tzdata 2018i). Requested by Shawn C Carroll (GitHub
#28)
- Fixed packaging problems
- Version 6.74 was not packaged correctly. Version wasn't set correctly in a
few files and there were invalid entries in Makefile.PL. RT 127870.
- Removed travis file from the tarball
- The tarball had a .travis.yml file in it that wasn't in the MANIFEST file.
Since the MANIFEST file is automatically generated by the perl mkmanifest
tool, since it didn't see the .travis.yml file, I have excluded it from
the tarball. Reported by Mohammad S Anwar on GitHub (#23)
- Time zone fixes
- Newest zoneinfo data (tzdata 2018e)
- Fixed math on non-64-bit architectures
- Much of the math in Date::Manip::Base is in a 'use integer' section. This
math can overflow in some cases in non-64-bit architectures. Fixed the
cases where this would reasonably occur. Reported by Daniel Albers (GitHub
#22). Also reported and tested in RT 126052.
- Bug in normalizing estimated business deltas
- While working on the non-64-bit issue, it uncovered a bug where
normalizing estimated business deltas was wrong. It had never been
reported, and it was only off by a couple seconds in some rare
situations.
- Fixed recurrence bug
- The fix in the previous version for a rare recurrence problem broke
another recurrence form. It is now corrected. Michael Schout (GitHub
#20)
- Fixed version problem
- The wrong version was included in two files for some reason. This is
fixed.
- Documentation fixes
- Fixed a grammatical error reported by Xavier Guimard (GitHub #19).
- Fixed an extremely rare problem with recurrences
- It is possible to specify a recurrence that never produces a valid date.
In these cases, looking for dates went into an infinite loop. The
MaxRecurAttempts config variable was added which will stop that from
happening. If no occurrence was found, an error condition will be set.
Dean Hamstead (RT 123708)
- Changes file supported
- It was requested that I include a valid Changes file. I wrote a simple
script to convert the Change6.pod file into a valid Change file. The
Changes6.pod file is still the canonical source of this information!
Requested by H. Merijn Brand
- Fix for timezone determination
- On MacOS X High Sierra, some of the timezone files were symlinks, but not
properly followed. This was fixed by Stu Tomlinson (GitHub #15).
- Time zone fixes
- Newest zoneinfo data (tzdata 2018e)
- Documentation fixes
- Minor fix provided by Mohammad S Anwar (GitHub #17)
- (*) (!) Changes to deltas
- Improved handling of deltas to better support the different types of
deltas. Formalized how the semi-exact portions of the delta are used to
produce the results that most people would expect.
The type can now be specified to guarantee several behaviors.
Changed the arguments (in a backward compatible way) to several methods.
Explicitly added a new type (estimated) which was there previously, but
could not be manually specified.
The convert function continues to support converting from a
less exact type to a more exact type, but this is deprecated and will be
removed in version 7.00.
This was prompted by a bug reported by Ian Gibbs.
- (*) (!) Deprecated some parts of Date::Manip::Delta
- The options passed to the set and parse methods have
changed. The old style will be removed in version 7.00.
Deltas will also no longer support the 'exact' and
'approximate' strings (which have not been supported for some time).
These will be removed in 7.00 as well.
- Deprecation of TZ postponed
- The deprecation of the TZ variable has been postponed to version
7.00.
- Some speed improvements
- I converted some of the functions to use faster algorithms. Previously,
the steps were worked out using logical time/calendar based calculations.
These were replaced with non-intuitive numerical calculations that gave
the same result faster.
- Changed behavior if timezone not determined
- If the system timezone cannot be determined using any of the methods
supplied by Date::Manip, operations will be done in the GMT timezone.
Previously, Date::Manip would simply fail to load. Based on a report by
Kent Fredric (RT 123229).
- Fixed Makefile.PL
- The list of what what is provided did not include the path to the file
providing each module. I've fixed the Makefile.PL as well as the META
files. Graham Knop (GitHub #13)
- Time zone fixes
- Newest zoneinfo data (tzdata 2018c)
- Documentation fixes
- Rewrote Date::Manip::Delta page to reflect changes, and clean up the
documentation in general.
- Bug fixes
- Fixed a bug where if a recurrence had no interval, start and end dates
passed in to the dates method would not work. PJ-DSI-DevOps (GitHub
#12).
- Documentation fixes
- Clarified Date::Manip::TZ::all_periods. Based on discussion with Peter
Pfannenschmid.
- Time zone fixes
- Newest zoneinfo data (tzdata 2017b)
- Documentation fixes
- Improved some of the documentation.
- Better support for $mode in DateCalc.
- DateCalc (in DM6) did not support all values for
$mode. Now it does.
- Bug fixes
- Parsing a date like 01/02/2016 and calling printf with
%e gave '02' instead of ' 2'. Robert Wohlfarth (RT
119787).
Fixed a problem where the tzdata method of determining the
timezone was producing an error which wasn't correct. John (GitHub
#8)
- Time zone fixes
- Newest zoneinfo data (tzdata 2017a)
- Time zone fixes
- Newest zoneinfo data (tzdata 2016j)
- Test fixes
- A faulty test was failing in a few places. RT 118705
Another test was failing due to a perl bug that popped up in
5.25.7. Tweaked the test to bypass the bug. Kent Fredric (RT 118862)
- Test fixes
- A faulty test was failing most places. New release to correct that
problem. Slaven Rezic (RT 117404)
- Fixed bug where $::TZ wasn't used
- The $::TZ variable was not getting interpreted
correctly when searching for a timezone. Steven Hartland (RT 114949)
- Fixed bug where recurrences were not parsed correctly
- Passing in incorrect values for a field was not trapped in all cases and
it led to problems. All values passed in to a recurrence are now correctly
checked. Albert Hilazo (GitHub #7).
- Fixed a bug in some methods of creating new objects
- Some methods of creating new objects based on existing objects did not
correctly use the existing object. Bug has never been reported, but was
discovered when adding tests to get 100% coverage.
- Time zone fixes
- Newest zoneinfo data (tzdata 2016f)
- Test fixes
- Added a number of new tests based on Devel::Cover.
- Deprecation of Date::Manip 5.xx tests
- By default, the Date::Manip 5.xx tests will no longer run. Changes to the
timezone data can cause failures. Since Date::Manip 5.xx is no longer
supported in any way, these tests will no longer run on a system where
6.xx can be run. Richard Jelinek.
- Deprecation of TZ postponed
- The deprecation of the TZ variable has been postponed to March 2017. I
decided that 1 year was not enough notice (especially since not everyone
will have updated Date::Manip since March 2015 when the warning was
added.
- Bug fixes
- Changed requirement for ExtUtils::MakeMaker to 6.67_01. Quin Arnold (RT
112286)
Fixed a bug where a timezone abbreviation was not parsed
correctly when passed in as a value to the SetDate, ForceDate, or TZ
config variables. Based on a report in perlmonks.org.
- Time zone fixes
- Newest zoneinfo data (tzdata 2016d)
Made some improvements to how I handled the timezone data
which resulted in a few of the default timezones being changed.
- Documentation fixes
- Fixed one more typo. Gregor Herrmann (RT 114095)
Clarified the Config document. Based on a report in
perlmonks.org.
- Bug fixes
- Date::Manip::Delta::cmp had a bug in it's comparison. Ian Gibbs.
The secs_since_1970_GMT method was missing a test to see if it
was a valid object. Michael Stevens (RT 111915)
- Time zone fixes
- Newest zoneinfo data (tzdata 2016a)
- Documentation fixes
- Lots of typos fixed. I was using podspell to do spell checking, but it was
discarding too much real text (which wasn't getting checked as a result).
Switched to pod2text which does a better job. Gregor Herrmann (RT
110025)
- Added date ranges on unmodified dates in Recur
- The date range can now be specified for either the fully modified dates,
or the unmodified dates. This will make it easier to work with holidays in
some instances. Based on
<http://perlmonks.org/?node_id=1148735>.
- Added IWn and NWn recurrence modifiers
- Based on <http://perlmonks.org/?node_id=1148735>.
- (!) Reworked holidays slightly
- Previously, every line in the Holidays section defined a unique holiday.
Now, the names determine the list of holidays.
It is not allowed to have two separate holidays named exactly
the same. It IS allowed to have complex holidays that require two (or
more) lines in the Holidays section to define them completely.
Based on <http://perlmonks.org/?node_id=1148735>.
- Bug fixes
- Fixed a bug where the RecurRange config variable wasn't getting used.
Fixed a bug where some deltas were not parsed correctly as
dates. Salvatore Bonaccorso (RT 109600)
- Time zone fixes
- Newest zoneinfo data (tzdata 2015g)
- Test fixes
- Added a number of new tests based on Devel::Cover.
- Changes suggested by perlcritic
- Played with perlcritic and made a few minor changes based on it's
suggestions. I doubt I will use perlcritic significantly.
- (!) Date::Manip::Delta::value now returns an empty string
- If a delta has an error, or no valid delta in it, the value method returns
an empty string instead of undef. This is to be consistent with the
Date::Manip::Date::value method which returns an empty string.
- Bug fixes
- Fixed a bug where date/delta calculations with deltas that are too large
was not working correctly. They now set an error condition and fail. Jared
Selengut (RT 105737)
Fixed a bug introduced by the previous patch and luckily
discovered pre-release by Tom Wyant.
Fixed code that produced a warning in 5.22.0. Tom Wyant
- Improved DM6 ParseDate and ParseDateString
- Added @opts argument. Based on report by Vitaly
Shupak (RT 105622).
- Time zone fixes
- Newest zoneinfo data (tzdata 2015f)
Now uses /etc/localtime as a method to determine the local
timezone. Patch supplied by Tom Wyant (RT 105159) (modified by me). The
patch uses some code derived from DateTime::TimeZone .
Clearer message when the date is not valid in the
timezone.
- Test fixes
- Added a number of new tests based on Devel::Cover. Over the next several
releases, I intend to continue to add tests until coverage is 100%.
- Documentation fixes
- Fixed a typo. Gregor Herrmann (RT 105546)
- Bug fixes
- Not really a bug, but 6.49 got a bunch of NYTprof data bundled with it by
mistake. It's been removed. Olivier Mengue (RT 103252)
Fixed a bug where information about whether a date was
complete or truncated was discarded. Jim Avera
Fixed a bug where SetDate with a zone alias failed.
Added the Format_MMMYYYY config variable to allow the
truncated format mmmYYYY to be parsed instead of mmmDDYY. David W.
Morganwalp and Glenn Golden (RT 103142)
Fixed Makefile.PL/Build.PL to correct for a change on perl on
windows which changes a module prereq requirement. Alexandr Ciornii
- Time zone fixes
- Newest zoneinfo data (tzdata 2015d)
Added aliases for older HP-UX time zones. H. Merijn Brand (RT
104141)
- Documentation fixes
- Fixed URL for tzdata. Mohammad S Anwar (GitHub #3).
Better POD formats.
Fixed a documentation error. Glenn Golden (RT 103966)
- Added a deprecation warning
- The TZ config variable is going away. Added a deprecation warning.
- Some speedups for timezone handling
- Based on a report by Glenn Golden (RT 102284), I have done some
optimization of the timezone handling code.
- Bug fixes
- Added the missing is_date base method to Date::Manip::Base. Mario
Domgoergen.
- Time zone fixes
- Newest zoneinfo data (tzdata 2015a)
- Language fixes
- A number of corrections by Nicholas Riley
- Put repository on GitHub
- Suggested by Gabor Szabo
- parse_time now parses ISO 8601 times
- The parse_time routine wouldn't correctly parse ISO 8601 times. This is
now fixed.
- Parsing special dates with timezones now works
- Parsing special date formats with timezones is now supported such as:
Christmas at noon PST
in 3 days at noon PST
now PST
epoch 3000000 PST
- dm_zdump modified
- To match the newest version of zdump, the gmtoff is now added at the end
of each line.
- Bug fixes
- Fixed a bug in the printf method that would not handle embedded newlines
correctly (and resulted in an infinite loop if it were preceded by a '%').
Henrique Martins
Fixed a bug where '24:00' was not parsed correctly (though
'24:00:00' was).
Fixed a bug where fractional values separated by a comma
weren't parsed correctly.
- Time zone fixes
- Newest zoneinfo data (tzdata 2014j)
- Time zone fixes
- Newest zoneinfo data (tzdata 2014f)
- Language fixes
- Fixed some encoding errors in the language pod documentation.
- Broken distribution
- The distribution contained an temporary edit file that caused problems.
Alexandr Ciornii (RT 96459)
- Time zone fixes
- Newest zoneinfo data (tzdata 2014e)
- Language fixes
- Added some plural abbreviations that were missing. Glenn Golden (RT
96944)
- Fixed a test
- One test was failing (reported by Constantine Peresypkin (RT 96249) as
well as several CPAN Tester reports).
- (*) Improvements to UTF8 handling
- A number of changes based on a report and other discussion with Yuri
Nikulin (RT 93545) including:
Case insensitive matching of UTF8 strings should work all the
time.
Fixed two significant bugs in regexps for parsing dates.
Improvements to UTF8 handling.
Corrected some problems with Russian and added the cp1251
encoding.
One correction to Romanian.
Added several new test scripts.
Preliminary patches were supplied by Yuri.
- New features
- Modified the parse_format function to return %+ if desired. Mike
Cappella
- Time zone fixes
- Newest zoneinfo data (tzdata 2014c)
- Documentation fixes
- Clarified some DM6 functions. David Close.
Fixed a typo. Mike Cappella (RT 95619)
- Several changes to distribution files
- I made several changes to Build.PL, Makefile.PL, META.yml in order to
improve the quality (or kwalitee) of the module. None of these should
impact anyone using the module.
- Time zone fixes
- Newest zoneinfo data (tzdata 2013i)
- Documentation fixes
- Cleaned up some of the Recur documentation. Suggested by Warren Young (RT
92794)
- Added ParseDateFormat function
- Added the ParseDateFormat function to the DM6 functional interface in
response to Eli Lindsey (RT 89286).
- Added Common Log format
- Added the date format used in apache logs: 11/Oct/2000:13:55:36 -0700 Eli
Lindsey (RT 89286).
- Time zone fixes
- Newest zoneinfo data (tzdata 2013h)
- Bug fixes
- Fixed a bug where dates of the form of a delta with a timezone attached
(i.e. "1 day ago at midnight UTC") failed. Ludovic Lange (RT
89256)
Fixed a bug where events handling gave a warning if there were
no events that applied. RT 90344
- Bug fixes
- Removed a .swp file accidentally left in the package. RT 85845
Fixed a bug in parse_format where times between 00:00:00 and
01:00:00 weren't parsed correctly. Ole Nomann Thomsen
Fixed generated META.* files to not require Module::Build
0.39. Carsten Wolff (RT 86137)
Fixed a bug where parse_format did not work with a '%s'
format. Mark Keisler (RT 87498)
Fixed a bug where find_encoding wasn't imported from the
Encode module. Krishna Subramanian (RT 87665)
Fixed a bug where recurrences with no interval did not work if
a start and end date were specified, and no dates fell in that range.
Jan Pradac
- Time zone fixes
- Newest zoneinfo data (tzdata 2013d)
- Removed PODs
- POD documentation is no longer generated for Date::Manip::TZ::* and
Date::Manip::Offset::* modules.
- Time zone fixes
- Newest zoneinfo data (tzdata 2013c)
- Added the $mode argument to ParseDateDelta
- The ParseDateDelta function (in functional interface) did not allow you to
force a parsed delta to semi or approx where appropriate. This was added.
Based on RT 82991.
- Added get_config method
- The get_config method was added to all classes. Suggested by Philippe
Poilbarbe.
- Language fixes
- Fixed a German language problem. Gosta Oelstrom
- Documentation fixes
- Documented workaround for dmake problem in strawberry perl. Discussed on
perlmonks and Martin Thurn (RT 79837).
Clarified the Examples page. Winston Heng
- (*) Tar file format corrected
- Problems were reported on several OSes by people unable to install
Date::Manip (and other modules). It turns out that the version of tar
distributed by my linux distro (OpenSuSE) uses the 'posix' format instead
of the traditional 'gnu' format by default. This causes problems for some
versions of tar. I have had reports from OSX, Windows, and SunOS. Future
versions of Date::Manip will be explicitly distributed in the 'gnu' tar
archive format.
Reported by Jay Allen and John Ralls (RT 80594).
- (*) Date::Manip 5.xx end-of-life
- Date::Manip 5.xx is now officially out of support. I will not be doing any
further work on it. The only exception is that I will consider adding user
supplied patches on a case-by-case basis.
If at all possible, please use Date::Manip 6.xx instead.
- (!) Removed some deprecated config variables
- The following config variables have been removed.
IntCharSet
RecurNumFudgeDays
- Bug fixes
- Fixed a bug where ISO 8601 format YYYY-WXX-D didn't work if the week ended
up in December. Gordon Lugauer.
- Time zone fixes
- Newest zoneinfo data (tzdata 2012j)
- Documentation fixes
- Spelling error fixed. RT 80621
- Fix version numbers
- This was an interim release to fix the version numbers (6.35 was released
with all of the version numbers 6.34).
- Fix PATH
- This version was an interim release to fix the problem with the PATH being
replaced.
- Removed dependency on YAML
- I've reverted the language data files to perl literals instead of YAML.
Though not quite as easy to maintain, it solves a few problems. Patch
provided by Christopher Madsen.
- Bug fixes
- Last versions fix for RT 78566 overrode the PATH even when that wasn't
appropriate. This is fixed. Report and patch supplied by Tom Wyant (RT
80435).
This is a bug fix so that the PATH won't break non-unix installs.
- Bug fixes
- Put the PATH inside the Unix section so it doesn't affect non-unix
environments. Geoff Rowell
- Improvements to Date::Manip::Delta
- Added convert method. This had been planned since 6.30, but based on a
discussion with Henrique Martins, I moved it up in priority.
Cleaned up handling of delta field lengths (they are now only
calculated once.
Added cmp method. Henrique Martins
- Bug fixes
- The language modules read from the DATA section, but I never closed the
filehandle. This is fixed now. Patch by Doru Theodor Petrescu
Added better loading of DM5/DM6 modules. Evan Carroll (RT
78152)
Added a secure PATH to TZ.pm for taint reasons. In response to
Dan Pritts (RT 78566)
- Time zone fixes
- Now supports timezones in files with spaces where there should be
underscores. This occurs in RHEL desktop. Dan Pritts (RT 78566)
Newest zoneinfo data (tzdata 2012e)
- Documentation fixes
- Minor fix. Henrique Martins
- Modified Build.PL
- Build.PL now has better support for building (or not building) HTML files.
Apparently this is slow on Windows. Patch provide by Manoj Kumar (RT
75118)
- Bug fixes
- Fixed a bug in business day calculations. Frederic Briere (RT 76336)
Fixed a bug where Delta/Recur objects weren't correctly
created. Zsban Ambrus
Fixed a bug where SetDate/ForceDate config variables could not
be included in a file. Jerry Wilcox
- Time zone fixes
- Newest zoneinfo data (tzdata 2012c).
- Documentation fixes
- Better support for UTF-8 in autogenerated language module pod files.
- Added extended formats to printf method.
- These include the %<A=NUM>, %<a=NUM>, %<v=NUM>,
%<B=NUM>, %<b=NUM>, %<p=NUM>, and %<E=NUM>
formats. Chris Jackson
- Can now parse formats where the time and zone are not adjacent
- A string like 'Jan 21 17:13:27 2010 -0400' can now be parsed. Requested on
perlmonks ('Can Date::Manip parse a unix timestamp' thread).
- Added PeriodTimeSep config variable.
- This allows you to use a period as a time separator. Ed Avis
- Holidays can be used as date strings
- You can now parse a holiday name in the Date::Manip::Date::parse method.
For example, parse('Christmas'). Requested by Abigail.
- Added new recur modifiers
- Added WDn, IBD, and NBD modifiers.
- Added a new date format
- You can now parse '2nd day in May' formats. Randy Harmon
- More flexibility in parsing timezones with both offset and abbrev
- If you include both the offset and abbreviation in the timezone portion of
a date, the parenthesis around the abbreviation are now optional, so you
can parse both:
-04:00 (EDT)
-04:00 EDT
Requested by Steven Melendez.
- Deltas now support fractional values.
- You can now use a delta of 1.5 days. Martin Thurn (RT 42699)
- Multiple holidays supported
- A date may now have multiple holidays. Keith Minkler
- Bug fixes
- Fixed a bug where abbreviations were not being examined case
insensitively. Jurgen Muck
The Holidays section may be safely split across multiple
config files. A bug prevented this from working before.
- Language fixes
- The Norwegian translation was broken due to a typo in the language module.
Included complete documentation for each language.
Fixed a couple problems with Danish. Nicholas Oxhaj
Added Finnish (from a VERY old mail that I overlooked
somehow). Iikka Virkkunen
Cleaned up the values used by printf directives to give the
expected result.
- Documentation fixes
- Fixed a typo. Nicholas Bamber
- (*) (!) Reworked deltas
- Much of the delta code was reworked.
The constraint that a day is treated as 24 hours was removed
(by adding the concept of semi-exact deltas) to better handle daylight
saving time calculations.
Made cosmetic changes to which signs will be included in a
delta to make the deltas more readable. Signs which are the same as the
next higher field will be omitted, even if they cross set
boundaries.
Added support for non-normalized deltas. See the
$no_normalize option for the parse and set
methods.
Removed limitations on subtract=2 not working with business
calculations.
Thanks to discussion on perlmonks, and RT 65774 that prompted
me to do this. I'd been wanting to do it for some time, but the
discussion on perlmonks made me realize that this needed to be much
higher priority.
- (!) Modified Delta_Format
- In conjunction with the above work, added the 'semi' mode to
Delta_Format.
- (!) Removed some deprecated config variables
- The following config variables have been removed.
GlobalCnf
IgnoreGlobalCnf
PersonalCnf
PersonalCnfPath
PathSep
Internal
DeltaSigns
UpdateCurrTZ
ConvTZ
OldConfigFiles
ResetWorkDay
- Time zone fixes
- Newest zoneinfo data (tzdata 2011n). RT 71595
Corrects a bug where +0000 and -0000 offsets were not parsed
correctly. Aaron Hall
The zoneinfo data includes rules more than 20 years in the
future, so we now store 30 years of future dates instead of 20 to catch
these rules.
When parsing the timezone portion of the date, timezone
abbreviations now take higher precedence than zone names (since that is
how timezone information is typically specified). That only impacts
dates where the a timezone name is the same as an abbreviation, such as
'CET'.
Previously, a date with CET in it was interpreted as in the
CET timezone. Now it is interpreted as in a timezone with the CET
abbreviation.
- Better handling of undef in DM6
- The date/delta parsing routines in DM6 will now handle an undef argument
without issuing a warning. Earl C. Ruby III
- Bug fixes
- Fixed a bug with the parse_format %f and
%i formats. Tommi Rintala
Fixed a bug where the Date::Manip::Delta::set function didn't
work to set the month value.
Fixed a bug where parsing some dates near during a DST change
failed.
Minor bug fix when using Delta_Format. Prompted while
investigating RT 41095.
- Relaxed one constraint in ISO 8601 dates
- A time separated by whitespace from the date can use a single digit hour.
Yuming Philip Xiang
- (*) Set official removal dates for old config variables
- Config variables will be removed 2 years after they are deprecated (except
for the TZ variable which, due to it's wide use, will be kept for 4
years).
- Time zone fixes
- Newest zoneinfo data (tzdata 2011i)
- New features
- Spaces are ignored in the SetDate/ForceDate config values. Zsban
Ambrus
- Bug fixes
- Fixed a bug where 'in one week' wasn't correctly parsed. E. M. Shtern
Fixed a bug where options passed in to the 'new' as a listref
weren't handled properly. Zsban Ambrus
- Time zone fixes
- Newest zoneinfo data (tzdata 2011g)
- (!) Renamed one Date::Manip::Recur method
- The Date::Manip::Recur::base method has been renamed to basedate . The
Date::Manip::Recur::base method should return the Date::Manip::Base object
like all the other Date::Manip modules.
- (*) Reworked holidays defined as recurrences
- Improved dealing with the bootstrap problem of defining holidays,
especially those that contain business day flags. Mike Tonks
- New features
- The printf function will now take multiple format strings and return a
list of values. Zsban Ambrus
- Bug fixes
- Fixed a bug where GlobalCnf wasn't working. Peter Edwards
Improved error messages in a few cases.
Fixed a bug where one invalid date/timezone check was ignored.
Morten Bjornsvik
Fixed a bug where '$base2 = new Date::Manip::Base
$base1' wasn't working. RT 67143
Fixed a bug where passing dates in to the Recur->dates
method failed. RT 67144
Fixed a bug where the mode wasn't being preserved correctly
for a delta. RT 67150
Fixed a bug in recurrences where a base date outside of a date
range with a very uncommon recurrence format would not work
correctly.
Fixed a problem where the '%s' printf option didn't work in
GMT. Jean-Michel Hiver
- Time zone fixes
- Newest zoneinfo data (tzdata 2011f)
- Documentation fixes
- Fixed two bad recurrence examples in the documentation. Peter Edwards and
Mike Tonks
- Time zone fixes
- Newest zoneinfo data (tzdata 2011b)
Fixed a bug where the gmtoff method of getting the local
timezone was broken. Martin Zinser.
Fixed the 'env' method of determining the local time zone to
allow the value to be an offset of seconds since UTC. This allows the
VMS SYS$TIMEZONE_DIFFERENTIAL variable to work correctly. Martin
Zinser.
Removed the SYS$TIMEZONE_RULE method from VMS since the value
stored there is not the name of a timezone (it's a rule in a
non-standard format). Based on discussion with Martin Zinser.
Improved the order in which aliases, abbreviations, etc., are
tested to test current usage before non-current usage (there were a few
cases where old usages were getting tested before current usage.
- Language fixes
- The module will now die if a language module cannot be loaded (most likely
due to a YAML::Syck issue). Based on discussion with Martin Zinser.
- Documentation fixes
- Added a sample config file document. Based on discussion with Rich
Duzenbury.
- New features
- Deltas may now contain spelled out numbers, so 'in 2 weeks' and 'in two
weeks' will both work. Daniel Shahaf
- Bug fixes
- Fixed a bug where week_of_year didn't work in some cases. Chris Eveland.
Fixed a minor potential bug. Geraint Edwards.
- Time zone fixes
- Updated windows time zone aliases. Daniel Harding
- Language fixes
- Added Norwegian. Glenn Sogn
- (*) (!) Reworked recurrences
- Recurrences were reworked in a (slightly) backward incompatible way to
improve their usefulness (and to make them conform to the expected
results). Most recurrences will work the same as previously, but a few
will differ. Most of this was suggested by Jay Jacobs.
A recurring event is now calculated relative to the base date,
NOT relative to a previous event. For example, if a recurrence occurs
every month, and the base date was Jan 31, then previously, recurring
events would have been (in a non-leap year):
D(0) = Jan 31
D(1) = D(0) + 1 month = Feb 28
D(2) = D(1) + 1 month = Mar 28
...
The new behavior is:
D(0) = Jan 31
D(1) = D(0) + 1*(1 month) = Feb 28
D(2) = D(0) + 2*(1 month) = Mar 31
...
Previously, if a base date were not specified, it was not
determined from the date range. Now, the start date of the date range
acts as the base date.
The meaning of the base date has changed slightly. It is much
more meaningful and useful now.
Added iterator functions. Daniel LaLiberte
The RecurNumFudgeDays variable is no longer used and is
deprecated.
- Time zone fixes
- Newest zoneinfo data (tzdata 2010o)
- (*) Date::Manip 5.xx fully integrated with 6.xx
- Date::Manip 5.xx and 6.xx are both installed automatically, and the
correct one will be chosen.
- Bug fixes
- Fixed a bug where recurrence handling was broken. RT 62128
- Documentation fixes
- A lot of documentation was cleaned up to be easier to read, and better
organized.
- New features
- Added the input methods to Date::Manip::Date and Date::Manip::Delta. Ed
Avis.
The 'date +%z' command will also be used to determine the
timezone. Oliver Schulze
- Bug fixes
- Several changes to try to get rid of a memory leaks reported in RT 54937.
Huge thanks to BrowserUK on perlmonks for help. Unfortunately, it ended up
being a bug in perl, and will only be resolved when that bug is fixed. See
the Date::Manip::Problems document for more information.
Reorganized Base/TZ to get rid of circular references.
Added end blocks to clean some global variables.
Got rid of switch/given structures.
Fixed a bug where an incomplete date with 'last' in it was
causing an error. RT 60138
Fixed a bug where 'Sunday, 9th Jan 1972' wasn't parsed
correctly. RT 57832
- Time zone fixes
- Fixed a bug where Zones.pm was generated with the abbreviations in the
wrong order. Amish Chana.
- Language fixes
- French month abbreviations now support periods. Bernard Haerri
- Test fixes
- Added tests from RT 29655 to make sure that the problem never recurs.
- Documentation fixes
- Fixed documentation problem with the new_* methods in Date::Manip::Obj.
Options must be passed in as \@opts rather than
@opts.
Cleaned up some of the documentation.
- (!) IntCharSet config variable deprecated
- With better support for international character sets, the old IntCharSet
config variable (which was a bandaid at best) is deprecated. Currently,
the functionality still exists, but it will be removed at some point.
- New features
- Added the Encoding config variable.
Now supports parsing the EXIF date format. Rhesa Rozendaal
- Bug fixes
- Fixed Build.PL to not require perl 5.010 since the distribution as a whole
does not require that (and I want that fact to be in META.yml).
Fixed a bug where the Date::Manip::Date::set method was broken
when setting individual fields. Helmut A. Bender
Fixed a bug where set didn't work in Date::Manip::Delta. Patch
provided in RT 59096.
- Time zone fixes
- Newest zoneinfo data (tzdata 2010m)
- Language fixes
- (*) Converted all language files to UTF-8 and added rudimentary support
for character encodings. Some assistance by Stephen
Ostermiller.
Fixed problem in Polish, Dutch. Stephen Ostermiller
Extended support for 'nth' up to 53rd. Paco Regodon
Added some corrections to German. Dieter Lange
- Documentation fixes
- Clarified Date::Manip::Recur documentation based on RT 59132.
- Bug fixes
- Fixed a problem in Build.PL that had an incorrect module requirement.
- (*) Combined 5.xx and 6.xx releases into one distribution
- Because the automatic module management tools cpan/cpanp would try to
upgrade Date::Manip to the most recent version, and the most recent
version will only work if perl 5.10.0 or higher is installed, both the
5.xx and 6.xx releases are now combined into a single distribution.
This is described more fully in the Date::Manip::Problems
document.
- (!) Zones specified by offset
- In all operations involving time zones, the time zone must be determined.
By default, it would take all of the information available (date, ISDST,
etc.) and determine the most likely time zone. It would take every time
zone that matched each piece of information, starting with those that
matched in a standard time followed by those that matched in a daylight
saving time.
When zones are specified by an offset, a standard time would
always match since there are standard time zones that match all year
long (the military time zones A-Z and the standard time zones of the
form Etc/GMT+01). As a result, a daylight saving time match would never
occur.
Since (if the date falls during a daylight saving time period)
you usually want to use a time zone that has that offset in daylight
saving time, the default is now to check daylight saving time zones
first, followed by standard times.
See the Date::Manip::TZ manual (under the zone method) for
more information.
- Bug fixes
- Fixed a bug where Date_ConvTZ not working correctly with time zones
specified by offset. Chris Butler
Fixed a bug where business mode calculations involving minutes
was not handled correctly. Damien Moore
Fixed a bug where business mode calculations failed in some
cases. RT 56638
- Time zone fixes
- Newest zoneinfo data (tzdata 2010i)
Changed Date::Manip::TZ::zone so "dst" is sometimes
the default $dstflag. Based on the bug report by
Chris Butler.
OpenUNIX puts a colon at the start of some time zones. It's
removed. Jean Hassler
- Test fixes
- Converted tests to Test::Inter
- Documentation fixes
- Fixed a documentation bug in Date::Manip::TZ where "stdonly" was
listed as the default value for $dstflag, but in
actuality, "std" is the default.
- Bug fixes
- Fixed bug in Date_TimeZone where it wasn't returning the time zone. Robert
Eden
- Bug fixes
- Minor bug where %Z printf format didn't always
work.
Added support for 5pm back in (it was omitted accidentally).
Mark Kennedy
Fixed a minor warning. Morten Bjoernsvik
Some additional speedups.
- Time zone fixes
- Newest zoneinfo data (tzdata 2010b)
Added dm_zdump example script.
Improved TZ::periods functionality
Fixed bug in Date_ConvTZ where empty values weren't defaulting
to local time zone. Robert Eden
Fixed a couple of problems in the generated time zones for
some odd cases (America/Resolute and Asia/Tehran).
- (!) %z format
- In Date::Manip 5.xx, the %z format in UnixDate
printed the offset in the form -0500. In 6.00, I changed that to
-05:00:00, but this broke RFC 822 compliance.
I've changed %z back to -0500, and
introduced a new format (%N) which returns -05:00:00.
Incidentally, this is the LAST unused letter, so I am now
going to have to either stop adding formats, or add some extended format
syntax. Not sure yet which, but this may involve a backwards
incompatible change in the future.
- (*) Significant speedups.
- Thanks to Moritz Lenz and BrowserUK on perlmonks for suggestions (and a
number of other people on perlmonks for suggestions that I did not end up
using, but which provided a great discussion).
- Bug fixes
- Fixed a bug in parse_date where the current time was getting used instead
of the documented 00:00:00
Bug fix where DateCalc didn't work with
$mode in some cases.
Fixed Makefile.PL/Build.PL to handle Win32::TieRegistry
requirement.
Changed %z printf behavior back to
5.xx and added %N format. Gilles Lamiral
Added dm_date example script.
- Time zone fixes
- Fixed bug where non-English Windows versions didn't get the time zone.
Thanks to Rene Schickbauer for testing.
- Test fixes
- Reduced the precision of 1 test to avoid a rounding difference when using
a perl compiled with uselongdouble. Andreas Koenig
- Bug fixes
- Fixed a bug where events were not interpreted in the correct time zone if
SetDate/ForceDate used.
- Bug fixes
- Corrects a backward incompatibility with UnixDate. Rene Schickbauer
- Test fixes
- A couple more corrections to the tests.
- Bug fixes
- Disabled curr_zone_methods when taint checking on. I believe that
Date::Manip is completely taint friendly at this point.
- Test fixes
- A quick fix to make sure that the tests run correctly in other time
zones.
- Bug fixes
- (*) Fixed a bug where dates were sometimes getting the wrong time zone
when SetDate/ForceDate in effect.
- First release of the 6.xx series
- Date::Manip 6.00 is a total rethink of the module, and a nearly complete
rewrite. Please refer to the Date::Manip::Changes5to6 document for a list
of incompatible changes.
- Reorganization
- (*) Massive reorganization and near total rewrite.
(*) Broke into several smaller modules
- New Features
- (*) Full time zone support (using tzdata 2009s)
Added some functionality (suggested by James Elson to improve
setting the "current time". Done with the ForceDate config
variable.
(*) Converted languages to YAML for much easier
maintenance. Patch and suggestion provided by Evan
Carroll
Added much better formats for deltas. Suggested by Jim
Hranicky.
Borrowed the _FindWindowsTZName function from the
DateTime-TimeZone module.
Added SetDate config variable (based on a suggestion by
Christian Campbell).
Added parse_format which was first suggested by Kim Ryan.
- Other changes
- Several config variables deprecated
Thanks to Jonathan Hogue for helping test Windows
additions.
- Bug fixes (correcting problems in the 5.xx releases)
- Fixed a bug where "YYtoYYYY=c" wouldn't work.
VMS bugfix to not call `date` command. Lane
New Year's Day defined using a recurrence which might push the
observed day to the previous year was broken. Reported by Jerry
Wilcox.
- Language fixes
- Fixed typo in Turkish translation.
Spelling fix in Dutch. Bart Van Loon
- Additional credits
- I have received many suggestions over time which were automatically
handled during the 6.00 rewrite. Although the changes weren't made because
of the suggestions specifically, I wanted to acknowledge them since I
appreciate the suggestions.
I believe the first person to suggest writing Date::Manip as
an OO module was Eduard Derksen.
Delta_Format initialization done outside of the function. Eric
Boehm
Added $subtract to calculation
routines. First suggested by Steve Berlage.
Added ability to set individual parts of the date
(Date::Manip::Date::set). First suggested by Martin Thurn.
UnixDate (i.e. Date::Manip::Date::printf) only calculates
formats when they are needed. Eduard Derksen
Parsing will skip some date/time formats if requested. This
was first suggested by Eduard Derksen.
It has been suggested several times to support multiple
languages, multiple config files, or multiple sets of Date_Init options.
These suggestions (by Meng Fang, Ed Avis, Christian Campbell, and
perhaps others) were at the back of my mind as I developed the
Date::Manip::Base class.
The regular expressions are all i18n friendly in anticipation
of much better support for localization. First suggested by Alex
Kapranoff.
Parsing a date ('today', 'Monday') gives a time of '00:00:00'.
Suggested by Mark Aitchison.
Working with fractional days was suggested by Peter van
Hardenberg. This is implemented in Date::Manip::Base::day_of_year
method.
Please refer to the Date::Manip::Problems documentation for information on
submitting bug reports or questions to the author.
Date::Manip - main module documentation
This script is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
Sullivan Beck (sbeck@cpan.org)
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |