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