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