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