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