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