1Date::Manip::Changes6(3U)ser Contributed Perl DocumentatiDoante::Manip::Changes6(3)
2
3
4
6 Date::Manip::Changes6 - changes in Date::Manip 6.xx
7
9 This describes the changes made to the Date::Manip module in the 6.xx
10 series of releases. Major changes are marked with asterisks (*).
11
12 For the most part, Date::Manip has remained backward compatible at
13 every release, but occasionally, a change is made which is backward
14 incompatible. These are marked with an exclamation mark (!).
15
16 #=head1 VERSION 6.90 (expected 2022-12-01)
17
18 #=head1 VERSION 6.89 (expected 2022-09-01)
19
21 Packaging problem.
22 I generated a broken MANIFEST file in the previous release.
23 Reported in GitHub issue #39.
24
26 Time zone fixes
27 There were no new timezone fixes on 2022-03-01, so no release made
28 then.
29
30 Newest zoneinfo data (tzdata 2022a).
31
33 Bug fixes
34 The package was being generated with an incorrect MANIFEST file.
35 This is now fixed. RT 140075
36
38 Change warn to carp
39 All warnings are now issued with the carp command rather than
40 warn. Requested in GitHub pull request #18, but that request was
41 not used because it only changed the uses in the Date::Manip::Date
42 module.
43
44 Bug fixes
45 Fixed a bug where the next/prev Date::Manip::Recur methods gave
46 incorrect results when there are no dates that match the criteria.
47 (GitHub #36)
48
49 Time zone fixes
50 There were no new timezone fixes on 2021-06-01 or 2021-09-01, so
51 no releases made then.
52
53 Newest zoneinfo data (tzdata 2021e). (GitHub #37)
54
56 Test fixes
57 Missed some tests that were failing.
58
60 Time zone fixes
61 Newest zoneinfo data (tzdata 2021a).
62
63 Language fixes
64 Corrections and additions to Italian. Patch supplied by Leo
65 Cacciari (GitHub #33)
66
68 Time zone fixes
69 No new zoneinfo data so no release on 2020-09-01.
70
71 Newest zoneinfo data (tzdata 2020d). Requested by Shawn Carroll
72 (GitHub #32)
73
75 Time zone fixes
76 Newest zoneinfo data (tzdata 2020a).
77
79 Messed up the 6.80 package. This release fixes it.
80
82 Missed Changes entry for previous version.
83 Reported by Tina Muller (GitHub #31)
84
86 Time zone fixes
87 Newest zoneinfo data (tzdata 2019c).
88
90 Time zone fixes
91 Newest zoneinfo data (tzdata 2019b).
92
93 Documentation fixes
94 Fixed a broken link. Mohammad S Anwar (GitHub #29)
95
97 Time zone fixes
98 Newest zoneinfo data (tzdata 2019a).
99
101 Fixed bug in Date::Manip::Date::list_holidays.
102 It was using 'now' instead of the stored date. Douglas DeStafeno
103
104 Reordered TZ detection methods
105 Moved checking the tzdata files to lower priority to avoid a pretty
106 unusual situation in docker. Sven Nierlein (GitHub #20)
107
108 Time zone fixes
109 Newest zoneinfo data (tzdata 2018i). Requested by Shawn C Carroll
110 (GitHub #28)
111
113 Fixed packaging problems
114 Version 6.74 was not packaged correctly. Version wasn't set
115 correctly in a few files and there were invalid entries in
116 Makefile.PL. RT 127870.
117
119 Removed travis file from the tarball
120 The tarball had a .travis.yml file in it that wasn't in the
121 MANIFEST file. Since the MANIFEST file is automatically generated
122 by the perl mkmanifest tool, since it didn't see the .travis.yml
123 file, I have excluded it from the tarball. Reported by Mohammad S
124 Anwar on GitHub (#23)
125
126 Time zone fixes
127 Newest zoneinfo data (tzdata 2018e)
128
130 Fixed math on non-64-bit architectures
131 Much of the math in Date::Manip::Base is in a 'use integer'
132 section. This math can overflow in some cases in non-64-bit
133 architectures. Fixed the cases where this would reasonably occur.
134 Reported by Daniel Albers (GitHub #22). Also reported and tested
135 in RT 126052.
136
137 Bug in normalizing estimated business deltas
138 While working on the non-64-bit issue, it uncovered a bug where
139 normalizing estimated business deltas was wrong. It had never been
140 reported, and it was only off by a couple seconds in some rare
141 situations.
142
144 Fixed recurrence bug
145 The fix in the previous version for a rare recurrence problem broke
146 another recurrence form. It is now corrected. Michael Schout
147 (GitHub #20)
148
149 Fixed version problem
150 The wrong version was included in two files for some reason. This
151 is fixed.
152
153 Documentation fixes
154 Fixed a grammatical error reported by Xavier Guimard (GitHub #19).
155
157 Fixed an extremely rare problem with recurrences
158 It is possible to specify a recurrence that never produces a valid
159 date. In these cases, looking for dates went into an infinite
160 loop. The MaxRecurAttempts config variable was added which will
161 stop that from happening. If no occurrence was found, an error
162 condition will be set. Dean Hamstead (RT 123708)
163
164 Changes file supported
165 It was requested that I include a valid Changes file. I wrote a
166 simple script to convert the Change6.pod file into a valid Change
167 file. The Changes6.pod file is still the canonical source of this
168 information! Requested by H. Merijn Brand
169
170 Fix for timezone determination
171 On MacOS X High Sierra, some of the timezone files were symlinks,
172 but not properly followed. This was fixed by Stu Tomlinson (GitHub
173 #15).
174
175 Time zone fixes
176 Newest zoneinfo data (tzdata 2018e)
177
178 Documentation fixes
179 Minor fix provided by Mohammad S Anwar (GitHub #17)
180
182 (*) (!) Changes to deltas
183 Improved handling of deltas to better support the different types
184 of deltas. Formalized how the semi-exact portions of the delta are
185 used to produce the results that most people would expect.
186
187 The type can now be specified to guarantee several behaviors.
188 Changed the arguments (in a backward compatible way) to several
189 methods. Explicitly added a new type (estimated) which was there
190 previously, but could not be manually specified.
191
192 The convert function continues to support converting from a less
193 exact type to a more exact type, but this is deprecated and will be
194 removed in version 7.00.
195
196 This was prompted by a bug reported by Ian Gibbs.
197
198 (*) (!) Deprecated some parts of Date::Manip::Delta
199 The options passed to the set and parse methods have changed. The
200 old style will be removed in version 7.00.
201
202 Deltas will also no longer support the 'exact' and 'approximate'
203 strings (which have not been supported for some time). These will
204 be removed in 7.00 as well.
205
206 Deprecation of TZ postponed
207 The deprecation of the TZ variable has been postponed to version
208 7.00.
209
210 Some speed improvements
211 I converted some of the functions to use faster algorithms.
212 Previously, the steps were worked out using logical time/calendar
213 based calculations. These were replaced with non-intuitive
214 numerical calculations that gave the same result faster.
215
216 Changed behavior if timezone not determined
217 If the system timezone cannot be determined using any of the
218 methods supplied by Date::Manip, operations will be done in the GMT
219 timezone. Previously, Date::Manip would simply fail to load.
220 Based on a report by Kent Fredric (RT 123229).
221
222 Fixed Makefile.PL
223 The list of what what is provided did not include the path to the
224 file providing each module. I've fixed the Makefile.PL as well as
225 the META files. Graham Knop (GitHub #13)
226
227 Time zone fixes
228 Newest zoneinfo data (tzdata 2018c)
229
230 Documentation fixes
231 Rewrote Date::Manip::Delta page to reflect changes, and clean up
232 the documentation in general.
233
235 Bug fixes
236 Fixed a bug where if a recurrence had no interval, start and end
237 dates passed in to the dates method would not work. PJ-DSI-DevOps
238 (GitHub #12).
239
240 Documentation fixes
241 Clarified Date::Manip::TZ::all_periods. Based on discussion with
242 Peter Pfannenschmid.
243
245 Time zone fixes
246 Newest zoneinfo data (tzdata 2017b)
247
248 Documentation fixes
249 Improved some of the documentation.
250
252 Better support for $mode in DateCalc.
253 DateCalc (in DM6) did not support all values for $mode. Now it
254 does.
255
256 Bug fixes
257 Parsing a date like 01/02/2016 and calling printf with %e gave '02'
258 instead of ' 2'. Robert Wohlfarth (RT 119787).
259
260 Fixed a problem where the tzdata method of determining the timezone
261 was producing an error which wasn't correct. John (GitHub #8)
262
263 Time zone fixes
264 Newest zoneinfo data (tzdata 2017a)
265
267 Time zone fixes
268 Newest zoneinfo data (tzdata 2016j)
269
270 Test fixes
271 A faulty test was failing in a few places. RT 118705
272
273 Another test was failing due to a perl bug that popped up in
274 5.25.7. Tweaked the test to bypass the bug. Kent Fredric (RT
275 118862)
276
278 Test fixes
279 A faulty test was failing most places. New release to correct that
280 problem. Slaven Rezic (RT 117404)
281
283 Fixed bug where $::TZ wasn't used
284 The $::TZ variable was not getting interpreted correctly when
285 searching for a timezone. Steven Hartland (RT 114949)
286
287 Fixed bug where recurrences were not parsed correctly
288 Passing in incorrect values for a field was not trapped in all
289 cases and it led to problems. All values passed in to a recurrence
290 are now correctly checked. Albert Hilazo (GitHub #7).
291
292 Fixed a bug in some methods of creating new objects
293 Some methods of creating new objects based on existing objects did
294 not correctly use the existing object. Bug has never been
295 reported, but was discovered when adding tests to get 100%
296 coverage.
297
298 Time zone fixes
299 Newest zoneinfo data (tzdata 2016f)
300
301 Test fixes
302 Added a number of new tests based on Devel::Cover.
303
305 Deprecation of Date::Manip 5.xx tests
306 By default, the Date::Manip 5.xx tests will no longer run. Changes
307 to the timezone data can cause failures. Since Date::Manip 5.xx is
308 no longer supported in any way, these tests will no longer run on a
309 system where 6.xx can be run. Richard Jelinek.
310
311 Deprecation of TZ postponed
312 The deprecation of the TZ variable has been postponed to March
313 2017. I decided that 1 year was not enough notice (especially
314 since not everyone will have updated Date::Manip since March 2015
315 when the warning was added.
316
317 Bug fixes
318 Changed requirement for ExtUtils::MakeMaker to 6.67_01. Quin
319 Arnold (RT 112286)
320
321 Fixed a bug where a timezone abbreviation was not parsed correctly
322 when passed in as a value to the SetDate, ForceDate, or TZ config
323 variables. Based on a report in perlmonks.org.
324
325 Time zone fixes
326 Newest zoneinfo data (tzdata 2016d)
327
328 Made some improvements to how I handled the timezone data which
329 resulted in a few of the default timezones being changed.
330
331 Documentation fixes
332 Fixed one more typo. Gregor Herrmann (RT 114095)
333
334 Clarified the Config document. Based on a report in perlmonks.org.
335
337 Bug fixes
338 Date::Manip::Delta::cmp had a bug in it's comparison. Ian Gibbs.
339
340 The secs_since_1970_GMT method was missing a test to see if it was
341 a valid object. Michael Stevens (RT 111915)
342
343 Time zone fixes
344 Newest zoneinfo data (tzdata 2016a)
345
346 Documentation fixes
347 Lots of typos fixed. I was using podspell to do spell checking,
348 but it was discarding too much real text (which wasn't getting
349 checked as a result). Switched to pod2text which does a better
350 job. Gregor Herrmann (RT 110025)
351
353 Added date ranges on unmodified dates in Recur
354 The date range can now be specified for either the fully modified
355 dates, or the unmodified dates. This will make it easier to work
356 with holidays in some instances. Based on
357 <http://perlmonks.org/?node_id=1148735>.
358
359 Added IWn and NWn recurrence modifiers
360 Based on <http://perlmonks.org/?node_id=1148735>.
361
362 (!) Reworked holidays slightly
363 Previously, every line in the Holidays section defined a unique
364 holiday. Now, the names determine the list of holidays.
365
366 It is not allowed to have two separate holidays named exactly the
367 same. It IS allowed to have complex holidays that require two (or
368 more) lines in the Holidays section to define them completely.
369
370 Based on <http://perlmonks.org/?node_id=1148735>.
371
372 Bug fixes
373 Fixed a bug where the RecurRange config variable wasn't getting
374 used.
375
376 Fixed a bug where some deltas were not parsed correctly as dates.
377 Salvatore Bonaccorso (RT 109600)
378
379 Time zone fixes
380 Newest zoneinfo data (tzdata 2015g)
381
382 Test fixes
383 Added a number of new tests based on Devel::Cover.
384
386 Changes suggested by perlcritic
387 Played with perlcritic and made a few minor changes based on it's
388 suggestions. I doubt I will use perlcritic significantly.
389
390 (!) Date::Manip::Delta::value now returns an empty string
391 If a delta has an error, or no valid delta in it, the value method
392 returns an empty string instead of undef. This is to be consistent
393 with the Date::Manip::Date::value method which returns an empty
394 string.
395
396 Bug fixes
397 Fixed a bug where date/delta calculations with deltas that are too
398 large was not working correctly. They now set an error condition
399 and fail. Jared Selengut (RT 105737)
400
401 Fixed a bug introduced by the previous patch and luckily discovered
402 pre-release by Tom Wyant.
403
404 Fixed code that produced a warning in 5.22.0. Tom Wyant
405
406 Improved DM6 ParseDate and ParseDateString
407 Added @opts argument. Based on report by Vitaly Shupak (RT
408 105622).
409
410 Time zone fixes
411 Newest zoneinfo data (tzdata 2015f)
412
413 Now uses /etc/localtime as a method to determine the local
414 timezone. Patch supplied by Tom Wyant (RT 105159) (modified by
415 me). The patch uses some code derived from DateTime::TimeZone .
416
417 Clearer message when the date is not valid in the timezone.
418
419 Test fixes
420 Added a number of new tests based on Devel::Cover. Over the next
421 several releases, I intend to continue to add tests until coverage
422 is 100%.
423
424 Documentation fixes
425 Fixed a typo. Gregor Herrmann (RT 105546)
426
428 Bug fixes
429 Not really a bug, but 6.49 got a bunch of NYTprof data bundled with
430 it by mistake. It's been removed. Olivier Mengue (RT 103252)
431
432 Fixed a bug where information about whether a date was complete or
433 truncated was discarded. Jim Avera
434
435 Fixed a bug where SetDate with a zone alias failed.
436
437 Added the Format_MMMYYYY config variable to allow the truncated
438 format mmmYYYY to be parsed instead of mmmDDYY. David W.
439 Morganwalp and Glenn Golden (RT 103142)
440
441 Fixed Makefile.PL/Build.PL to correct for a change on perl on
442 windows which changes a module prereq requirement. Alexandr
443 Ciornii
444
445 Time zone fixes
446 Newest zoneinfo data (tzdata 2015d)
447
448 Added aliases for older HP-UX time zones. H. Merijn Brand (RT
449 104141)
450
451 Documentation fixes
452 Fixed URL for tzdata. Mohammad S Anwar (GitHub #3).
453
454 Better POD formats.
455
456 Fixed a documentation error. Glenn Golden (RT 103966)
457
459 Added a deprecation warning
460 The TZ config variable is going away. Added a deprecation warning.
461
462 Some speedups for timezone handling
463 Based on a report by Glenn Golden (RT 102284), I have done some
464 optimization of the timezone handling code.
465
466 Bug fixes
467 Added the missing is_date base method to Date::Manip::Base. Mario
468 Domgoergen.
469
470 Time zone fixes
471 Newest zoneinfo data (tzdata 2015a)
472
473 Language fixes
474 A number of corrections by Nicholas Riley
475
477 Put repository on GitHub
478 Suggested by Gabor Szabo
479
480 parse_time now parses ISO 8601 times
481 The parse_time routine wouldn't correctly parse ISO 8601 times.
482 This is now fixed.
483
484 Parsing special dates with timezones now works
485 Parsing special date formats with timezones is now supported such
486 as:
487
488 Christmas at noon PST
489 in 3 days at noon PST
490 now PST
491 epoch 3000000 PST
492
493 dm_zdump modified
494 To match the newest version of zdump, the gmtoff is now added at
495 the end of each line.
496
497 Bug fixes
498 Fixed a bug in the printf method that would not handle embedded
499 newlines correctly (and resulted in an infinite loop if it were
500 preceded by a '%'). Henrique Martins
501
502 Fixed a bug where '24:00' was not parsed correctly (though
503 '24:00:00' was).
504
505 Fixed a bug where fractional values separated by a comma weren't
506 parsed correctly.
507
508 Time zone fixes
509 Newest zoneinfo data (tzdata 2014j)
510
512 Time zone fixes
513 Newest zoneinfo data (tzdata 2014f)
514
515 Language fixes
516 Fixed some encoding errors in the language pod documentation.
517
519 Broken distribution
520 The distribution contained an temporary edit file that caused
521 problems. Alexandr Ciornii (RT 96459)
522
523 Time zone fixes
524 Newest zoneinfo data (tzdata 2014e)
525
526 Language fixes
527 Added some plural abbreviations that were missing. Glenn Golden
528 (RT 96944)
529
531 Fixed a test
532 One test was failing (reported by Constantine Peresypkin (RT 96249)
533 as well as several CPAN Tester reports).
534
536 (*) Improvements to UTF8 handling
537 A number of changes based on a report and other discussion with
538 Yuri Nikulin (RT 93545) including:
539
540 Case insensitive matching of UTF8 strings should work all the time.
541
542 Fixed two significant bugs in regexps for parsing dates.
543
544 Improvements to UTF8 handling.
545
546 Corrected some problems with Russian and added the cp1251 encoding.
547
548 One correction to Romanian.
549
550 Added several new test scripts.
551
552 Preliminary patches were supplied by Yuri.
553
554 New features
555 Modified the parse_format function to return %+ if desired. Mike
556 Cappella
557
558 Time zone fixes
559 Newest zoneinfo data (tzdata 2014c)
560
561 Documentation fixes
562 Clarified some DM6 functions. David Close.
563
564 Fixed a typo. Mike Cappella (RT 95619)
565
567 Several changes to distribution files
568 I made several changes to Build.PL, Makefile.PL, META.yml in order
569 to improve the quality (or kwalitee) of the module. None of these
570 should impact anyone using the module.
571
572 Time zone fixes
573 Newest zoneinfo data (tzdata 2013i)
574
575 Documentation fixes
576 Cleaned up some of the Recur documentation. Suggested by Warren
577 Young (RT 92794)
578
580 Added ParseDateFormat function
581 Added the ParseDateFormat function to the DM6 functional interface
582 in response to Eli Lindsey (RT 89286).
583
584 Added Common Log format
585 Added the date format used in apache logs: 11/Oct/2000:13:55:36
586 -0700 Eli Lindsey (RT 89286).
587
588 Time zone fixes
589 Newest zoneinfo data (tzdata 2013h)
590
591 Bug fixes
592 Fixed a bug where dates of the form of a delta with a timezone
593 attached (i.e. "1 day ago at midnight UTC") failed. Ludovic Lange
594 (RT 89256)
595
596 Fixed a bug where events handling gave a warning if there were no
597 events that applied. RT 90344
598
600 Bug fixes
601 Removed a .swp file accidentally left in the package. RT 85845
602
603 Fixed a bug in parse_format where times between 00:00:00 and
604 01:00:00 weren't parsed correctly. Ole Nomann Thomsen
605
606 Fixed generated META.* files to not require Module::Build 0.39.
607 Carsten Wolff (RT 86137)
608
609 Fixed a bug where parse_format did not work with a '%s' format.
610 Mark Keisler (RT 87498)
611
612 Fixed a bug where find_encoding wasn't imported from the Encode
613 module. Krishna Subramanian (RT 87665)
614
615 Fixed a bug where recurrences with no interval did not work if a
616 start and end date were specified, and no dates fell in that range.
617 Jan Pradac
618
619 Time zone fixes
620 Newest zoneinfo data (tzdata 2013d)
621
623 Removed PODs
624 POD documentation is no longer generated for Date::Manip::TZ::* and
625 Date::Manip::Offset::* modules.
626
627 Time zone fixes
628 Newest zoneinfo data (tzdata 2013c)
629
631 Added the $mode argument to ParseDateDelta
632 The ParseDateDelta function (in functional interface) did not allow
633 you to force a parsed delta to semi or approx where appropriate.
634 This was added. Based on RT 82991.
635
636 Added get_config method
637 The get_config method was added to all classes. Suggested by
638 Philippe Poilbarbe.
639
640 Language fixes
641 Fixed a German language problem. Gosta Oelstrom
642
643 Documentation fixes
644 Documented workaround for dmake problem in strawberry perl.
645 Discussed on perlmonks and Martin Thurn (RT 79837).
646
647 Clarified the Examples page. Winston Heng
648
650 (*) Tar file format corrected
651 Problems were reported on several OSes by people unable to install
652 Date::Manip (and other modules). It turns out that the version of
653 tar distributed by my linux distro (OpenSuSE) uses the 'posix'
654 format instead of the traditional 'gnu' format by default. This
655 causes problems for some versions of tar. I have had reports from
656 OSX, Windows, and SunOS. Future versions of Date::Manip will be
657 explicitly distributed in the 'gnu' tar archive format.
658
659 Reported by Jay Allen and John Ralls (RT 80594).
660
661 (*) Date::Manip 5.xx end-of-life
662 Date::Manip 5.xx is now officially out of support. I will not be
663 doing any further work on it. The only exception is that I will
664 consider adding user supplied patches on a case-by-case basis.
665
666 If at all possible, please use Date::Manip 6.xx instead.
667
668 (!) Removed some deprecated config variables
669 The following config variables have been removed.
670
671 IntCharSet
672 RecurNumFudgeDays
673
675 Bug fixes
676 Fixed a bug where ISO 8601 format YYYY-WXX-D didn't work if the
677 week ended up in December. Gordon Lugauer.
678
679 Time zone fixes
680 Newest zoneinfo data (tzdata 2012j)
681
682 Documentation fixes
683 Spelling error fixed. RT 80621
684
686 Fix version numbers
687 This was an interim release to fix the version numbers (6.35 was
688 released with all of the version numbers 6.34).
689
691 Fix PATH
692 This version was an interim release to fix the problem with the
693 PATH being replaced.
694
695 Removed dependency on YAML
696 I've reverted the language data files to perl literals instead of
697 YAML. Though not quite as easy to maintain, it solves a few
698 problems. Patch provided by Christopher Madsen.
699
700 Bug fixes
701 Last versions fix for RT 78566 overrode the PATH even when that
702 wasn't appropriate. This is fixed. Report and patch supplied by
703 Tom Wyant (RT 80435).
704
706 This is a bug fix so that the PATH won't break non-unix installs.
707
708 Bug fixes
709 Put the PATH inside the Unix section so it doesn't affect non-unix
710 environments. Geoff Rowell
711
713 Improvements to Date::Manip::Delta
714 Added convert method. This had been planned since 6.30, but based
715 on a discussion with Henrique Martins, I moved it up in priority.
716
717 Cleaned up handling of delta field lengths (they are now only
718 calculated once.
719
720 Added cmp method. Henrique Martins
721
722 Bug fixes
723 The language modules read from the DATA section, but I never
724 closed the filehandle. This is fixed now. Patch by Doru Theodor
725 Petrescu
726
727 Added better loading of DM5/DM6 modules. Evan Carroll (RT 78152)
728
729 Added a secure PATH to TZ.pm for taint reasons. In response to
730 Dan Pritts (RT 78566)
731
732 Time zone fixes
733 Now supports timezones in files with spaces where there should be
734 underscores. This occurs in RHEL desktop. Dan Pritts (RT 78566)
735
736 Newest zoneinfo data (tzdata 2012e)
737
738 Documentation fixes
739 Minor fix. Henrique Martins
740
742 Modified Build.PL
743 Build.PL now has better support for building (or not building) HTML
744 files. Apparently this is slow on Windows. Patch provide by Manoj
745 Kumar (RT 75118)
746
747 Bug fixes
748 Fixed a bug in business day calculations. Frederic Briere (RT
749 76336)
750
751 Fixed a bug where Delta/Recur objects weren't correctly created.
752 Zsban Ambrus
753
754 Fixed a bug where SetDate/ForceDate config variables could not be
755 included in a file. Jerry Wilcox
756
757 Time zone fixes
758 Newest zoneinfo data (tzdata 2012c).
759
760 Documentation fixes
761 Better support for UTF-8 in autogenerated language module pod
762 files.
763
765 Added extended formats to printf method.
766 These include the %<A=NUM>, %<a=NUM>, %<v=NUM>, %<B=NUM>, %<b=NUM>,
767 %<p=NUM>, and %<E=NUM> formats. Chris Jackson
768
769 Can now parse formats where the time and zone are not adjacent
770 A string like 'Jan 21 17:13:27 2010 -0400' can now be parsed.
771 Requested on perlmonks ('Can Date::Manip parse a unix timestamp'
772 thread).
773
774 Added PeriodTimeSep config variable.
775 This allows you to use a period as a time separator. Ed Avis
776
777 Holidays can be used as date strings
778 You can now parse a holiday name in the Date::Manip::Date::parse
779 method. For example, parse('Christmas'). Requested by Abigail.
780
781 Added new recur modifiers
782 Added WDn, IBD, and NBD modifiers.
783
784 Added a new date format
785 You can now parse '2nd day in May' formats. Randy Harmon
786
787 More flexibility in parsing timezones with both offset and abbrev
788 If you include both the offset and abbreviation in the timezone
789 portion of a date, the parenthesis around the abbreviation are now
790 optional, so you can parse both:
791
792 -04:00 (EDT)
793 -04:00 EDT
794
795 Requested by Steven Melendez.
796
797 Deltas now support fractional values.
798 You can now use a delta of 1.5 days. Martin Thurn (RT 42699)
799
800 Multiple holidays supported
801 A date may now have multiple holidays. Keith Minkler
802
803 Bug fixes
804 Fixed a bug where abbreviations were not being examined case
805 insensitively. Jurgen Muck
806
807 The Holidays section may be safely split across multiple config
808 files. A bug prevented this from working before.
809
810 Language fixes
811 The Norwegian translation was broken due to a typo in the language
812 module.
813
814 Included complete documentation for each language.
815
816 Fixed a couple problems with Danish. Nicholas Oxhaj
817
818 Added Finnish (from a VERY old mail that I overlooked somehow).
819 Iikka Virkkunen
820
821 Cleaned up the values used by printf directives to give the
822 expected result.
823
824 Documentation fixes
825 Fixed a typo. Nicholas Bamber
826
828 (*) (!) Reworked deltas
829 Much of the delta code was reworked.
830
831 The constraint that a day is treated as 24 hours was removed (by
832 adding the concept of semi-exact deltas) to better handle daylight
833 saving time calculations.
834
835 Made cosmetic changes to which signs will be included in a delta to
836 make the deltas more readable. Signs which are the same as the
837 next higher field will be omitted, even if they cross set
838 boundaries.
839
840 Added support for non-normalized deltas. See the $no_normalize
841 option for the parse and set methods.
842
843 Removed limitations on subtract=2 not working with business
844 calculations.
845
846 Thanks to discussion on perlmonks, and RT 65774 that prompted me to
847 do this. I'd been wanting to do it for some time, but the
848 discussion on perlmonks made me realize that this needed to be much
849 higher priority.
850
851 (!) Modified Delta_Format
852 In conjunction with the above work, added the 'semi' mode to
853 Delta_Format.
854
855 (!) Removed some deprecated config variables
856 The following config variables have been removed.
857
858 GlobalCnf
859 IgnoreGlobalCnf
860 PersonalCnf
861 PersonalCnfPath
862 PathSep
863
864 Internal
865 DeltaSigns
866 UpdateCurrTZ
867 ConvTZ
868 OldConfigFiles
869 ResetWorkDay
870
871 Time zone fixes
872 Newest zoneinfo data (tzdata 2011n). RT 71595
873
874 Corrects a bug where +0000 and -0000 offsets were not parsed
875 correctly. Aaron Hall
876
877 The zoneinfo data includes rules more than 20 years in the future,
878 so we now store 30 years of future dates instead of 20 to catch
879 these rules.
880
881 When parsing the timezone portion of the date, timezone
882 abbreviations now take higher precedence than zone names (since
883 that is how timezone information is typically specified). That
884 only impacts dates where the a timezone name is the same as an
885 abbreviation, such as 'CET'.
886
887 Previously, a date with CET in it was interpreted as in the CET
888 timezone. Now it is interpreted as in a timezone with the CET
889 abbreviation.
890
891 Better handling of undef in DM6
892 The date/delta parsing routines in DM6 will now handle an undef
893 argument without issuing a warning. Earl C. Ruby III
894
895 Bug fixes
896 Fixed a bug with the parse_format %f and %i formats. Tommi Rintala
897
898 Fixed a bug where the Date::Manip::Delta::set function didn't work
899 to set the month value.
900
901 Fixed a bug where parsing some dates near during a DST change
902 failed.
903
904 Minor bug fix when using Delta_Format. Prompted while
905 investigating RT 41095.
906
908 Relaxed one constraint in ISO 8601 dates
909 A time separated by whitespace from the date can use a single digit
910 hour. Yuming Philip Xiang
911
912 (*) Set official removal dates for old config variables
913 Config variables will be removed 2 years after they are deprecated
914 (except for the TZ variable which, due to it's wide use, will be
915 kept for 4 years).
916
917 Time zone fixes
918 Newest zoneinfo data (tzdata 2011i)
919
921 New features
922 Spaces are ignored in the SetDate/ForceDate config values. Zsban
923 Ambrus
924
925 Bug fixes
926 Fixed a bug where 'in one week' wasn't correctly parsed. E. M.
927 Shtern
928
929 Fixed a bug where options passed in to the 'new' as a listref
930 weren't handled properly. Zsban Ambrus
931
932 Time zone fixes
933 Newest zoneinfo data (tzdata 2011g)
934
936 (!) Renamed one Date::Manip::Recur method
937 The Date::Manip::Recur::base method has been renamed to basedate .
938 The Date::Manip::Recur::base method should return the
939 Date::Manip::Base object like all the other Date::Manip modules.
940
941 (*) Reworked holidays defined as recurrences
942 Improved dealing with the bootstrap problem of defining holidays,
943 especially those that contain business day flags. Mike Tonks
944
945 New features
946 The printf function will now take multiple format strings and
947 return a list of values. Zsban Ambrus
948
949 Bug fixes
950 Fixed a bug where GlobalCnf wasn't working. Peter Edwards
951
952 Improved error messages in a few cases.
953
954 Fixed a bug where one invalid date/timezone check was ignored.
955 Morten Bjornsvik
956
957 Fixed a bug where '$base2 = new Date::Manip::Base $base1' wasn't
958 working. RT 67143
959
960 Fixed a bug where passing dates in to the Recur->dates method
961 failed. RT 67144
962
963 Fixed a bug where the mode wasn't being preserved correctly for a
964 delta. RT 67150
965
966 Fixed a bug in recurrences where a base date outside of a date
967 range with a very uncommon recurrence format would not work
968 correctly.
969
970 Fixed a problem where the '%s' printf option didn't work in GMT.
971 Jean-Michel Hiver
972
973 Time zone fixes
974 Newest zoneinfo data (tzdata 2011f)
975
976 Documentation fixes
977 Fixed two bad recurrence examples in the documentation. Peter
978 Edwards and Mike Tonks
979
981 Time zone fixes
982 Newest zoneinfo data (tzdata 2011b)
983
984 Fixed a bug where the gmtoff method of getting the local timezone
985 was broken. Martin Zinser.
986
987 Fixed the 'env' method of determining the local time zone to allow
988 the value to be an offset of seconds since UTC. This allows the
989 VMS SYS$TIMEZONE_DIFFERENTIAL variable to work correctly. Martin
990 Zinser.
991
992 Removed the SYS$TIMEZONE_RULE method from VMS since the value
993 stored there is not the name of a timezone (it's a rule in a non-
994 standard format). Based on discussion with Martin Zinser.
995
996 Improved the order in which aliases, abbreviations, etc., are
997 tested to test current usage before non-current usage (there were a
998 few cases where old usages were getting tested before current
999 usage.
1000
1001 Language fixes
1002 The module will now die if a language module cannot be loaded (most
1003 likely due to a YAML::Syck issue). Based on discussion with Martin
1004 Zinser.
1005
1006 Documentation fixes
1007 Added a sample config file document. Based on discussion with Rich
1008 Duzenbury.
1009
1011 New features
1012 Deltas may now contain spelled out numbers, so 'in 2 weeks' and 'in
1013 two weeks' will both work. Daniel Shahaf
1014
1015 Bug fixes
1016 Fixed a bug where week_of_year didn't work in some cases. Chris
1017 Eveland.
1018
1019 Fixed a minor potential bug. Geraint Edwards.
1020
1021 Time zone fixes
1022 Updated windows time zone aliases. Daniel Harding
1023
1024 Language fixes
1025 Added Norwegian. Glenn Sogn
1026
1028 (*) (!) Reworked recurrences
1029 Recurrences were reworked in a (slightly) backward incompatible way
1030 to improve their usefulness (and to make them conform to the
1031 expected results). Most recurrences will work the same as
1032 previously, but a few will differ. Most of this was suggested by
1033 Jay Jacobs.
1034
1035 A recurring event is now calculated relative to the base date, NOT
1036 relative to a previous event. For example, if a recurrence occurs
1037 every month, and the base date was Jan 31, then previously,
1038 recurring events would have been (in a non-leap year):
1039
1040 D(0) = Jan 31
1041 D(1) = D(0) + 1 month = Feb 28
1042 D(2) = D(1) + 1 month = Mar 28
1043 ...
1044
1045 The new behavior is:
1046
1047 D(0) = Jan 31
1048 D(1) = D(0) + 1*(1 month) = Feb 28
1049 D(2) = D(0) + 2*(1 month) = Mar 31
1050 ...
1051
1052 Previously, if a base date were not specified, it was not
1053 determined from the date range. Now, the start date of the date
1054 range acts as the base date.
1055
1056 The meaning of the base date has changed slightly. It is much more
1057 meaningful and useful now.
1058
1059 Added iterator functions. Daniel LaLiberte
1060
1061 The RecurNumFudgeDays variable is no longer used and is deprecated.
1062
1063 Time zone fixes
1064 Newest zoneinfo data (tzdata 2010o)
1065
1067 (*) Date::Manip 5.xx fully integrated with 6.xx
1068 Date::Manip 5.xx and 6.xx are both installed automatically, and the
1069 correct one will be chosen.
1070
1071 Bug fixes
1072 Fixed a bug where recurrence handling was broken. RT 62128
1073
1074 Documentation fixes
1075 A lot of documentation was cleaned up to be easier to read, and
1076 better organized.
1077
1079 New features
1080 Added the input methods to Date::Manip::Date and
1081 Date::Manip::Delta. Ed Avis.
1082
1083 The 'date +%z' command will also be used to determine the timezone.
1084 Oliver Schulze
1085
1086 Bug fixes
1087 Several changes to try to get rid of a memory leaks reported in RT
1088 54937. Huge thanks to BrowserUK on perlmonks for help.
1089 Unfortunately, it ended up being a bug in perl, and will only be
1090 resolved when that bug is fixed. See the Date::Manip::Problems
1091 document for more information.
1092
1093 Reorganized Base/TZ to get rid of circular references.
1094 Added end blocks to clean some global variables.
1095 Got rid of switch/given structures.
1096
1097 Fixed a bug where an incomplete date with 'last' in it was causing
1098 an error. RT 60138
1099
1100 Fixed a bug where 'Sunday, 9th Jan 1972' wasn't parsed correctly.
1101 RT 57832
1102
1103 Time zone fixes
1104 Fixed a bug where Zones.pm was generated with the abbreviations in
1105 the wrong order. Amish Chana.
1106
1107 Language fixes
1108 French month abbreviations now support periods. Bernard Haerri
1109
1110 Test fixes
1111 Added tests from RT 29655 to make sure that the problem never
1112 recurs.
1113
1114 Documentation fixes
1115 Fixed documentation problem with the new_* methods in
1116 Date::Manip::Obj. Options must be passed in as \@opts rather than
1117 @opts.
1118
1119 Cleaned up some of the documentation.
1120
1122 (!) IntCharSet config variable deprecated
1123 With better support for international character sets, the old
1124 IntCharSet config variable (which was a bandaid at best) is
1125 deprecated. Currently, the functionality still exists, but it will
1126 be removed at some point.
1127
1128 New features
1129 Added the Encoding config variable.
1130
1131 Now supports parsing the EXIF date format. Rhesa Rozendaal
1132
1133 Bug fixes
1134 Fixed Build.PL to not require perl 5.010 since the distribution as
1135 a whole does not require that (and I want that fact to be in
1136 META.yml).
1137
1138 Fixed a bug where the Date::Manip::Date::set method was broken when
1139 setting individual fields. Helmut A. Bender
1140
1141 Fixed a bug where set didn't work in Date::Manip::Delta. Patch
1142 provided in RT 59096.
1143
1144 Time zone fixes
1145 Newest zoneinfo data (tzdata 2010m)
1146
1147 Language fixes
1148 (*) Converted all language files to UTF-8 and added rudimentary
1149 support for character encodings. Some assistance by Stephen
1150 Ostermiller.
1151
1152 Fixed problem in Polish, Dutch. Stephen Ostermiller
1153
1154 Extended support for 'nth' up to 53rd. Paco Regodon
1155
1156 Added some corrections to German. Dieter Lange
1157
1158 Documentation fixes
1159 Clarified Date::Manip::Recur documentation based on RT 59132.
1160
1162 Bug fixes
1163 Fixed a problem in Build.PL that had an incorrect module
1164 requirement.
1165
1167 (*) Combined 5.xx and 6.xx releases into one distribution
1168 Because the automatic module management tools cpan/cpanp would try
1169 to upgrade Date::Manip to the most recent version, and the most
1170 recent version will only work if perl 5.10.0 or higher is
1171 installed, both the 5.xx and 6.xx releases are now combined into a
1172 single distribution.
1173
1174 This is described more fully in the Date::Manip::Problems document.
1175
1176 (!) Zones specified by offset
1177 In all operations involving time zones, the time zone must be
1178 determined. By default, it would take all of the information
1179 available (date, ISDST, etc.) and determine the most likely time
1180 zone. It would take every time zone that matched each piece of
1181 information, starting with those that matched in a standard time
1182 followed by those that matched in a daylight saving time.
1183
1184 When zones are specified by an offset, a standard time would always
1185 match since there are standard time zones that match all year long
1186 (the military time zones A-Z and the standard time zones of the
1187 form Etc/GMT+01). As a result, a daylight saving time match would
1188 never occur.
1189
1190 Since (if the date falls during a daylight saving time period) you
1191 usually want to use a time zone that has that offset in daylight
1192 saving time, the default is now to check daylight saving time zones
1193 first, followed by standard times.
1194
1195 See the Date::Manip::TZ manual (under the zone method) for more
1196 information.
1197
1198 Bug fixes
1199 Fixed a bug where Date_ConvTZ not working correctly with time zones
1200 specified by offset. Chris Butler
1201
1202 Fixed a bug where business mode calculations involving minutes was
1203 not handled correctly. Damien Moore
1204
1205 Fixed a bug where business mode calculations failed in some cases.
1206 RT 56638
1207
1208 Time zone fixes
1209 Newest zoneinfo data (tzdata 2010i)
1210
1211 Changed Date::Manip::TZ::zone so "dst" is sometimes the default
1212 $dstflag. Based on the bug report by Chris Butler.
1213
1214 OpenUNIX puts a colon at the start of some time zones. It's
1215 removed. Jean Hassler
1216
1217 Test fixes
1218 Converted tests to Test::Inter
1219
1220 Documentation fixes
1221 Fixed a documentation bug in Date::Manip::TZ where "stdonly" was
1222 listed as the default value for $dstflag, but in actuality, "std"
1223 is the default.
1224
1226 Bug fixes
1227 Fixed bug in Date_TimeZone where it wasn't returning the time zone.
1228 Robert Eden
1229
1231 Bug fixes
1232 Minor bug where %Z printf format didn't always work.
1233
1234 Added support for 5pm back in (it was omitted accidentally). Mark
1235 Kennedy
1236
1237 Fixed a minor warning. Morten Bjoernsvik
1238
1239 Some additional speedups.
1240
1241 Time zone fixes
1242 Newest zoneinfo data (tzdata 2010b)
1243
1244 Added dm_zdump example script.
1245
1246 Improved TZ::periods functionality
1247
1248 Fixed bug in Date_ConvTZ where empty values weren't defaulting to
1249 local time zone. Robert Eden
1250
1251 Fixed a couple of problems in the generated time zones for some odd
1252 cases (America/Resolute and Asia/Tehran).
1253
1255 (!) %z format
1256 In Date::Manip 5.xx, the %z format in UnixDate printed the offset
1257 in the form -0500. In 6.00, I changed that to -05:00:00, but this
1258 broke RFC 822 compliance.
1259
1260 I've changed %z back to -0500, and introduced a new format (%N)
1261 which returns -05:00:00.
1262
1263 Incidentally, this is the LAST unused letter, so I am now going to
1264 have to either stop adding formats, or add some extended format
1265 syntax. Not sure yet which, but this may involve a backwards
1266 incompatible change in the future.
1267
1268 (*) Significant speedups.
1269 Thanks to Moritz Lenz and BrowserUK on perlmonks for suggestions
1270 (and a number of other people on perlmonks for suggestions that I
1271 did not end up using, but which provided a great discussion).
1272
1273 Bug fixes
1274 Fixed a bug in parse_date where the current time was getting used
1275 instead of the documented 00:00:00
1276
1277 Bug fix where DateCalc didn't work with $mode in some cases.
1278
1279 Fixed Makefile.PL/Build.PL to handle Win32::TieRegistry
1280 requirement.
1281
1282 Changed %z printf behavior back to 5.xx and added %N format. Gilles
1283 Lamiral
1284
1285 Added dm_date example script.
1286
1287 Time zone fixes
1288 Fixed bug where non-English Windows versions didn't get the time
1289 zone. Thanks to Rene Schickbauer for testing.
1290
1291 Test fixes
1292 Reduced the precision of 1 test to avoid a rounding difference when
1293 using a perl compiled with uselongdouble. Andreas Koenig
1294
1296 Bug fixes
1297 Fixed a bug where events were not interpreted in the correct time
1298 zone if SetDate/ForceDate used.
1299
1301 Bug fixes
1302 Corrects a backward incompatibility with UnixDate. Rene Schickbauer
1303
1304 Test fixes
1305 A couple more corrections to the tests.
1306
1308 Bug fixes
1309 Disabled curr_zone_methods when taint checking on. I believe that
1310 Date::Manip is completely taint friendly at this point.
1311
1312 Test fixes
1313 A quick fix to make sure that the tests run correctly in other time
1314 zones.
1315
1317 Bug fixes
1318 (*) Fixed a bug where dates were sometimes getting the wrong time
1319 zone when SetDate/ForceDate in effect.
1320
1322 First release of the 6.xx series
1323 Date::Manip 6.00 is a total rethink of the module, and a nearly
1324 complete rewrite. Please refer to the Date::Manip::Changes5to6
1325 document for a list of incompatible changes.
1326
1327 Reorganization
1328 (*) Massive reorganization and near total rewrite.
1329
1330 (*) Broke into several smaller modules
1331
1332 New Features
1333 (*) Full time zone support (using tzdata 2009s)
1334
1335 Added some functionality (suggested by James Elson to improve
1336 setting the "current time". Done with the ForceDate config
1337 variable.
1338
1339 (*) Converted languages to YAML for much easier maintenance. Patch
1340 and suggestion provided by Evan Carroll
1341
1342 Added much better formats for deltas. Suggested by Jim Hranicky.
1343
1344 Borrowed the _FindWindowsTZName function from the DateTime-TimeZone
1345 module.
1346
1347 Added SetDate config variable (based on a suggestion by Christian
1348 Campbell).
1349
1350 Added parse_format which was first suggested by Kim Ryan.
1351
1352 Other changes
1353 Several config variables deprecated
1354
1355 Thanks to Jonathan Hogue for helping test Windows additions.
1356
1357 Bug fixes (correcting problems in the 5.xx releases)
1358 Fixed a bug where "YYtoYYYY=c" wouldn't work.
1359
1360 VMS bugfix to not call `date` command. Lane
1361
1362 New Year's Day defined using a recurrence which might push the
1363 observed day to the previous year was broken. Reported by Jerry
1364 Wilcox.
1365
1366 Language fixes
1367 Fixed typo in Turkish translation.
1368
1369 Spelling fix in Dutch. Bart Van Loon
1370
1371 Additional credits
1372 I have received many suggestions over time which were automatically
1373 handled during the 6.00 rewrite. Although the changes weren't made
1374 because of the suggestions specifically, I wanted to acknowledge
1375 them since I appreciate the suggestions.
1376
1377 I believe the first person to suggest writing Date::Manip as an OO
1378 module was Eduard Derksen.
1379
1380 Delta_Format initialization done outside of the function. Eric
1381 Boehm
1382
1383 Added $subtract to calculation routines. First suggested by Steve
1384 Berlage.
1385
1386 Added ability to set individual parts of the date
1387 (Date::Manip::Date::set). First suggested by Martin Thurn.
1388
1389 UnixDate (i.e. Date::Manip::Date::printf) only calculates formats
1390 when they are needed. Eduard Derksen
1391
1392 Parsing will skip some date/time formats if requested. This was
1393 first suggested by Eduard Derksen.
1394
1395 It has been suggested several times to support multiple languages,
1396 multiple config files, or multiple sets of Date_Init options. These
1397 suggestions (by Meng Fang, Ed Avis, Christian Campbell, and perhaps
1398 others) were at the back of my mind as I developed the
1399 Date::Manip::Base class.
1400
1401 The regular expressions are all i18n friendly in anticipation of
1402 much better support for localization. First suggested by Alex
1403 Kapranoff.
1404
1405 Parsing a date ('today', 'Monday') gives a time of '00:00:00'.
1406 Suggested by Mark Aitchison.
1407
1408 Working with fractional days was suggested by Peter van Hardenberg.
1409 This is implemented in Date::Manip::Base::day_of_year method.
1410
1412 Please refer to the Date::Manip::Problems documentation for information
1413 on submitting bug reports or questions to the author.
1414
1416 Date::Manip - main module documentation
1417
1419 This script is free software; you can redistribute it and/or modify it
1420 under the same terms as Perl itself.
1421
1423 Sullivan Beck (sbeck@cpan.org)
1424
1425
1426
1427perl v5.34.1 2022-06-06 Date::Manip::Changes6(3)