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