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
18 New features
19 Spaces are ignored in the SetDate/ForceDate config values. Zsban
20 Ambrus
21
22 Bug fixes
23 Fixed a bug where 'in one week' wasn't correctly parsed. E. M.
24 Shtern
25
26 Fixed a bug where options passed in to the 'new' as a listref
27 weren't handled properly. Zsban Ambrus
28
29 Time zone fixes
30 Newest zoneinfo data (tzdata 2011g)
31
33 (!) Renamed one Date::Manip::Recur method
34 The Date::Manip::Recur::base method has been renamed to basedate .
35 The Date::Manip::Recur::base method should return the
36 Date::Manip::Base object like all the other Date::Manip modules.
37
38 (*) Reworked holidays defined as recurrences
39 Improved dealing with the bootstrap problem of defining holidays,
40 especially those that contain business day flags. Mike Tonks
41
42 New features
43 The printf function will now take multiple format strings and
44 return a list of values. Zsban Ambrus
45
46 Bug fixes
47 Fixed a bug where GlobalCnf wasn't working. Peter Edwards
48
49 Improved error messages in a few cases.
50
51 Fixed a bug where one invalid date/timezone check was ignored.
52 Morten Bjornsvik
53
54 Fixed a bug where '$base2 = new Date::Manip::Base $base1' wasn't
55 working. RT 67143
56
57 Fixed a bug where passing dates in to the Recur->dates method
58 failed. RT 67144
59
60 Fixed a bug where the mode wasn't being preserved correctly for a
61 delta. RT 67150
62
63 Fixed a bug in recurrences where a base date outside of a date
64 range with a very uncommon recurrence format would not work
65 correctly.
66
67 Fixed a problem where the '%s' printf option didn't work in GMT.
68 Jean-Michel Hiver
69
70 Time zone fixes
71 Newest zoneinfo data (tzdata 2011f)
72
73 Documentation fixes
74 Fixed two bad recurrence examples in the documentation. Peter
75 Edwards and Mike Tonks
76
78 Time zone fixes
79 Newest zoneinfo data (tzdata 2011b)
80
81 Fixed a bug where the gmtoff method of getting the local timezone
82 was broken. Martin Zinser.
83
84 Fixed the 'env' method of determining the local time zone to allow
85 the value to be an offset of seconds since UTC. This allows the
86 VMS SYS$TIMEZONE_DIFFERENTIAL variable to work correctly. Martin
87 Zinser.
88
89 Removed the SYS$TIMEZONE_RULE method from VMS since the value
90 stored there is not the name of a timezone (it's a rule in a non-
91 standard format). Based on discussion with Martin Zinser.
92
93 Improved the order in which aliases, abbreviations, etc., are
94 tested to test current usage before non-current usage (there were a
95 few cases where old usages were getting tested before current
96 usage.
97
98 Language fixes
99 The module will now die if a language module cannot be loaded (most
100 likely due to a YAML::Syck issue). Based on discussion with Martin
101 Zinser.
102
103 Documentation fixes
104 Added a sample config file document. Based on discussion with Rich
105 Duzenbury.
106
108 New features
109 Deltas may now contain spelled out numbers, so 'in 2 weeks' and 'in
110 two weeks' will both work. Daniel Shahaf
111
112 Bug fixes
113 Fixed a bug where week_of_year didn't work in some cases. Chris
114 Eveland.
115
116 Fixed a minor potential bug. Geraint Edwards.
117
118 Time zone fixes
119 Updated windows time zone aliases. Daniel Harding
120
121 Language fixes
122 Added Norwegian. Glenn Sogn
123
125 (*) (!) Reworked recurrences
126 Recurrences were reworked in a (slightly) backward incompatible way
127 to improve their usefulness (and to make them conform to the
128 expected results). Most recurrences will work the same as
129 previously, but a few will differ. Most of this was suggested by
130 Jay Jacobs.
131
132 A recurring event is now calculated relative to the base date, NOT
133 relative to a previous event. For example, if a recurrence occurs
134 every month, and the base date was Jan 31, then previously,
135 recurring events would have been (in a non-leap year):
136
137 D(0) = Jan 31
138 D(1) = D(0) + 1 month = Feb 28
139 D(2) = D(1) + 1 month = Mar 28
140 ...
141
142 The new behavior is:
143
144 D(0) = Jan 31
145 D(1) = D(0) + 1*(1 month) = Feb 28
146 D(2) = D(0) + 2*(1 month) = Mar 31
147 ...
148
149 Previously, if a base date were not specified, it was not
150 determined from the date range. Now, the start date of the date
151 range acts as the base date.
152
153 The meaning of the base date has changed slightly. It is much more
154 meaningful and useful now.
155
156 Added iterator functions. Daniel LaLiberte
157
158 The RecurNumFudgeDays variable is no longer used and is deprecated.
159
160 Time zone fixes
161 Newest zoneinfo data (tzdata 2010o)
162
164 Date::Manip 5.xx fully integrated with 6.xx
165 Date::Manip 5.xx and 6.xx are both installed automatically, and the
166 correct one will be chosen.
167
168 Bug fixes
169 Fixed a bug where recurrence handling was broken. RT 62128
170
171 Documentation fixes
172 A lot of documentation was cleaned up to be easier to read, and
173 better organized.
174
176 New features
177 Added the input methods to Date::Manip::Date and
178 Date::Manip::Delta. Ed Avis.
179
180 The 'date +%z' command will also be used to determine the timezone.
181 Oliver Schulze
182
183 Bug fixes
184 Several changes to try to get rid of a memory leaks reported in RT
185 54937. Huge thanks to BrowserUK on perlmonks for help.
186 Unfortunately, it ended up being a bug in perl, and will only be
187 resolved when that bug is fixed. See the Date::Manip::Problems
188 document for more information.
189
190 Reorganized Base/TZ to get rid of circular references.
191 Added end blocks to clean some global variables.
192 Got rid of switch/given structures.
193
194 Fixed a bug where an incomplete date with 'last' in it was causing
195 an error. RT 60138
196
197 Fixed a bug where 'Sunday, 9th Jan 1972' wasn't parsed correctly.
198 RT 57832
199
200 Time zone fixes
201 Fixed a bug where Zones.pm was generated with the abbreviations in
202 the wrong order. Amish Chana.
203
204 Language fixes
205 French month abbreviations now support periods. Bernard Haerri
206
207 Test fixes
208 Added tests from RT 29655 to make sure that the problem never
209 recurs.
210
211 Documentation fixes
212 Fixed documentation problem with the new_* methods in
213 Date::Manip::Obj. Options must be passed in as \@opts rather than
214 @opts.
215
216 Cleaned up some of the documentation.
217
219 (!) IntCharSet config variable deprecated
220 With better support for international character sets, the old
221 IntCharSet config variable (which was a bandaid at best) is
222 deprecated. Currently, the functionality still exists, but it will
223 be removed at some point.
224
225 New features
226 Added the Encoding config variable.
227
228 Now supports parsing the EXIF date format. Rhesa Rozendaal
229
230 Bug fixes
231 Fixed Build.PL to not require perl 5.010 since the distribution as
232 a whole does not require that (and I want that fact to be in
233 META.yml).
234
235 Fixed a bug where the Date::Manip::Date::set method was broken when
236 setting individual fields. Helmut A. Bender
237
238 Fixed a bug where set didn't work in Date::Manip::Delta. Patch
239 provided in RT 59096.
240
241 Time zone fixes
242 Newest zoneinfo data (tzdata 2010m)
243
244 Language fixes
245 (*) Converted all language files to UTF-8 and added rudimentary
246 support for character encodings. Some assistance by Stephen
247 Ostermiller.
248
249 Fixed problem in Polish, Dutch. Stephen Ostermiller
250
251 Extended support for 'nth' up to 53rd. Paco Regodon
252
253 Added some corrections to German. Dieter Lange
254
255 Documentation fixes
256 Clarified Date::Manip::Recur documentation based on RT 59132.
257
259 Bug fixes
260 Fixed a problem in Build.PL that had an incorrect module
261 requirement.
262
264 (*) Combined 5.xx and 6.xx releases into one distribution
265 Because the automatic module management tools cpan/cpanp would try
266 to upgrade Date::Manip to the most recent version, and the most
267 recent version will only work if perl 5.10.0 or higher is
268 installed, both the 5.xx and 6.xx releases are now combined into a
269 single distribution.
270
271 This is described more fully in the Date::Manip::Problems document.
272
273 (!) Zones specified by offset
274 In all operations involving time zones, the time zone must be
275 determined. By default, it would take all of the information
276 available (date, ISDST, etc.) and determine the most likely time
277 zone. It would take every time zone that matched each piece of
278 information, starting with those that matched in a standard time
279 followed by those that matched in a daylight saving time.
280
281 When zones are specified by an offset, a standard time would always
282 match since there are standard time zones that match all year long
283 (the military time zones A-Z and the standard time zones of the
284 form Etc/GMT+01). As a result, a daylight saving time match would
285 never occur.
286
287 Since (if the date falls during a daylight saving time period) you
288 usually want to use a time zone that has that offset in daylight
289 saving time, the default is now to check daylight saving time zones
290 first, followed by standard times.
291
292 See the Date::Manip::TZ manual (under the zone method) for more
293 information.
294
295 Bug fixes
296 Fixed a bug where Date_ConvTZ not working correctly with time zones
297 specified by offset. Chris Butler
298
299 Fixed a bug where business mode calculations involving minutes was
300 not handled correctly. Damien Moore
301
302 Fixed a bug where business mode calculations failed in some cases.
303 RT 56638
304
305 Time zone fixes
306 Newest zoneinfo data (tzdata 2010i)
307
308 Changed Date::Manip::TZ::zone so "dst" is sometimes the default
309 $dstflag. Based on the bug report by Chris Butler.
310
311 OpenUNIX puts a colon at the start of some time zones. It's
312 removed. Jean Hassler
313
314 Test fixes
315 Converted tests to Test::Inter
316
317 Documentation fixes
318 Fixed a documentation bug in Date::Manip::TZ where "stdonly" was
319 listed as the default value for $dstflag, but in actuality, "std"
320 is the default.
321
323 Bug fixes
324 Fixed bug in Date_TimeZone where it wasn't returning the time zone.
325 Robert Eden
326
328 Bug fixes
329 Minor bug where %Z printf format didn't always work.
330
331 Added support for 5pm back in (it was omitted accidentally). Mark
332 Kennedy
333
334 Fixed a minor warning. Morten Bjoernsvik
335
336 Some additional speedups.
337
338 Time zone fixes
339 Newest zoneinfo data (tzdata 2010b)
340
341 Added dm_zdump example script.
342
343 Improved TZ::periods functionality
344
345 Fixed bug in Date_ConvTZ where empty values weren't defaulting to
346 local time zone. Robert Eden
347
348 Fixed a couple of problems in the generated time zones for some odd
349 cases (America/Resolute and Asia/Tehran).
350
352 (!) %z format
353 In Date::Manip 5.xx, the %z format in UnixDate printed the offset
354 in the form -0500. In 6.00, I changed that to -05:00:00, but this
355 broke RFC 822 compliance.
356
357 I've changed %z back to -0500, and introduced a new format (%N)
358 which returns -05:00:00.
359
360 Incidentally, this is the LAST unused letter, so I am now going to
361 have to either stop adding formats, or add some extended format
362 syntax. Not sure yet which, but this may involve a backwards
363 incompatible change in the future.
364
365 (*) Significant speedups.
366 Thanks to Moritz Lenz and BrowserUK on perlmonks for suggestions
367 (and a number of other people on perlmonks for suggestions that I
368 did not end up using, but which provided a great discussion).
369
370 Bug fixes
371 Fixed a bug in parse_date where the current time was getting used
372 instead of the documented 00:00:00
373
374 Bug fix where DateCalc didn't work with $mode in some cases.
375
376 Fixed Makefile.PL/Build.PL to handle Win32::TieRegistry
377 requirement.
378
379 Changed %z printf behavior back to 5.xx and added %N format. Gilles
380 Lamiral
381
382 Added dm_date example script.
383
384 Time zone fixes
385 Fixed bug where non-English Windows versions didn't get the time
386 zone. Thanks to Rene Schickbauer for testing.
387
388 Test fixes
389 Reduced the precision of 1 test to avoid a rounding difference when
390 using a perl compiled with uselongdouble. Andreas Koenig
391
393 Bug fixes
394 Fixed a bug where events were not interpreted in the correct time
395 zone if SetDate/ForceDate used.
396
398 Bug fixes
399 Corrects a backward incompatibility with UnixDate. Rene Schickbauer
400
401 Test fixes
402 A couple more corrections to the tests.
403
405 Bug fixes
406 Disabled curr_zone_methods when taint checking on. I believe that
407 Date::Manip is completely taint friendly at this point.
408
409 Test fixes
410 A quick fix to make sure that the tests run correctly in other time
411 zones.
412
414 Bug fixes
415 (*) Fixed a bug where dates were sometimes getting the wrong time
416 zone when SetDate/ForceDate in effect.
417
419 Date::Manip 6.00 is a total rethink of the module, and a nearly
420 complete rewrite. Please refer to the Date::Manip::Changes5to6 document
421 for a list of incompatible changes.
422
423 Reorganization
424 (*) Massive reorganization and near total rewrite.
425
426 (*) Broke into several smaller modules
427
428 New Features
429 (*) Full time zone support (using tzdata 2009s)
430
431 Added some functionality (suggested by James Elson to improve
432 setting the "current time". Done with the ForceDate config
433 variable.
434
435 (*) Converted languages to YAML for much easier maintenance. Patch
436 and suggestion provided by Evan Carroll
437
438 Added much better formats for deltas. Suggested by Jim Hranicky.
439
440 Borrowed the _FindWindowsTZName function from the DateTime-TimeZone
441 module.
442
443 Added SetDate config variable (based on a suggestion by Christian
444 Campbell).
445
446 Added parse_format which was first suggested by Kim Ryan.
447
448 Other changes
449 Several config variables deprecated
450
451 Thanks to Jonathan Hogue for helping test Windows additions.
452
453 Bug fixes (correcting problems in the 5.xx releases)
454 Fixed a bug where "YYtoYYYY=c" wouldn't work.
455
456 VMS bugfix to not call `date` command. Lane
457
458 New Year's Day defined using a recurrence which might push the
459 observed day to the previous year was broken. Reported by Jerry
460 Wilcox.
461
462 Language fixes
463 Fixed typo in Turkish translation.
464
465 Spelling fix in Dutch. Bart Van Loon
466
467 Additional credits
468 I have received many suggestions over time which were automatically
469 handled during the 6.00 rewrite. Although the changes weren't made
470 because of the suggestions specifically, I wanted to acknowledge
471 them since I appreciate the suggestions.
472
473 I believe the first person to suggest writing Date::Manip as an OO
474 module was Eduard Derksen.
475
476 Delta_Format initialization done outside of the function. Eric
477 Boehm
478
479 Added $subtract to calculation routines. First suggested by Steve
480 Berlage.
481
482 Added ability to set individual parts of the date
483 (Date::Manip::Date::set). First suggested by Martin Thurn.
484
485 UnixDate (i.e. Date::Manip::Date::printf) only calculates formats
486 when they are needed. Eduard Derksen
487
488 Parsing will skip some date/time formats if requested. This was
489 first suggested by Eduard Derksen.
490
491 It has been suggested several times to support multiple languages,
492 multiple config files, or multiple sets of Date_Init options. These
493 suggestions (by Meng Fang, Ed Avis, Christian Campbell, and perhaps
494 others) were at the back of my mind as I developed the
495 Date::Manip::Base class.
496
497 The regular expressions are all i18n friendly in anticipation of
498 much better support for localization. First suggested by Alex
499 Kapranoff.
500
501 Parsing a date ('today', 'Monday') gives a time of '00:00:00'.
502 Suggested by Mark Aitchison.
503
505 Please refer to the Date::Manip::Problems documentation for information
506 on submitting bug reports or questions to the author.
507
509 Date::Manip - main module documentation
510
512 This script is free software; you can redistribute it and/or modify it
513 under the same terms as Perl itself.
514
516 Sullivan Beck (sbeck@cpan.org)
517
518
519
520perl v5.10.1 2011-12-07 Date::Manip::Changes6(3)