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