10.53   2009-12-06
2
3- Added Test::Exception to build_requires.
4
5
60.52   2009-12-05
7
8- Numeric to ->new() are now all validated to make sure they are
9  integers. Previously, things like "month => 11.2" would have been
10  allowed. Based on a bug report from Max Kanat-Alexandar. RT #45767.
11
12- Added a warning to the docs suggesting that you cache the locale time zone
13  if you need to make many DateTime objects in the local zone. Looking up the
14  local zone can be fairly expensive. RT #46753.
15
16
170.51   2009-11-01
18
19- Switched to Module::Build. To force a non-XS build, start the build
20  process with "perl Build.PL --pp".
21
22- POD-related tests are only run for the maintainer now.
23
24- Fixed handling of negative years in CLDR formatting for "y" and "u"
25  patterns. Note that the LDML spec says nothing about how this should work,
26  so I took my best guess.
27
28
290.50   2009-05-11
30
31- Tests were failing on Win32 because they attempted to use a negative
32  epoch. Fixed so that these tests are skipped. Fixes RT #45966.
33
34
350.49   2009-05-04
36
37- A bug in the test code for handling overloaded objects in from_epoch
38  resulted in a test failure on Perl 5.8.x. This release contains no
39  changes besides a test code fix.
40
41
420.48   2009-05-04
43
44- Some of the accessors (the "main" ones like year(), month(), day(),
45  etc) now warn if they are passed a value. Patch from Shawn
46  Moore. Fixes RT #6979.
47
48- DateTime::Duration expected DateTime to be loaded and used some
49  constants from it, but did not explicitly "use DateTime". Reported
50  by Jeff Kubina. RT #44740.
51
52- The CLDR formatting for "c" and "cc" was incorrectly using the local
53  day of the week. This meant that it gave the wrong result for
54  locales where Monday is not considered the first day of the
55  week. Reported by Maros Kollar. RT #45007.
56
57- DateTime->from_epoch did not allow an object which overloaded
58  numification as the epoch value. Patch by Michael Schwern. RT
59  #45653.
60
61- Fixed how datetime subtraction is handled for some cases around DST
62  changes. This had been improved back in 0.30, but there were still
63  bugs. RT #45235.
64
65
660.47   2009-03-01
67
68- The handling of CLDR format 'j' and 'jj' was backwards, using 24
69  hour time for locales that wanted 12 hour, and vice versa. Reported
70  by Maros Kollar.
71
72- The CLDR formatting was missing support for lower-case "q"
73  patterns. Reported by Maros Kollar.
74
75
760.46   2009-02-28
77
78- Added a duration_class method for the benefit of DateTime.pm
79  subclasses. Patch by Shawn Moore.
80
81
820.4501 2008-11-25
83
84- The epoch() method got broken in the recent shuffling between
85  Time::Local and Time::y2038. Unfortunately, the tests to catch this
86  also got lost in the shuffle. Reported by Avianna Chao.
87
88
890.45   2008-11-11
90
91- Reverted the changes to use Time::y2038, on the recommendation of
92  Michael Schwern (the author of said module), because it is not yet
93  stable. This may come back in a future release.
94
95
960.4401 2008-11-03
97
98- In order to handle epochs > 2**32 properly on a 32-bit machine, we
99  also need to import gmtime from Time::y2038. This changes fixes a
100  whole bunch of test failures seen with 0.44.
101
102
1030.44   2008-11-01
104
105- XS-capable DateTime.pm now uses Time::y2038 instead of
106  Time::Local. This lets it handle epochs up to 142 million years
107  before and after the Unix epoch.
108
109- Fixed a compiler warning with Perl 5.10.0.
110
111- Fixed docs for year_with_era, which had AD and BC
112  backwards. Reported by Vynce Montgomery. RT #39923.
113
114- The format_cldr() method did not format the "yy" format properly
115  when the year ended in "0X". Reported by Wilson Santos. RT #40555.
116
117
1180.4305 2008-10-03
119
120- The pure Perl version of this module did not know about the end of
121  2008 leap second. Reported by James T Monty.
122
123
1240.4304 2008-07-13
125
126- Fix test failures when tests are run with DateTime::Locale
127  0.41. Reported by David Cantrell via CPAN Testers.
128
129
1300.4303 2008-07-12
131
132- There is a new leap second coming at the end of 2008.
133
134
1350.4302 2008-05-20
136
137[ BUG FIXES ]
138
139- The 41cldr_format.t test blew up on Perl 5.6.x, because of a bug in
140  the test code.
141
142
1430.4301 2008-05-18
144
145[ BUG FIXES ]
146
147- In the 0.43 release, I forgot to change the DateTime::Locale
148  dependency to require DT::Locale 0.40.
149
150
1510.43   2008-05-18
152
153[ *** BACKWARDS INCOMPATIBILITIES *** ]
154
155* Dropped support for Perl 5.005.
156
157[ ENHANCEMENTS ]
158
159- Added support for formatting the CLDR date pattern language, which
160  is much more powerful than strftime. This, combined with the latest
161  DateTime::Locale, makes the localized output much more correct.
162
163[ BUG FIXES ]
164
165- The hour_1() method was returning the real hour + 1, rather than
166  just representing midnight as 24 instead of 0. This bug fix will
167  probably break someone's code.
168
169
1700.42   2008-02-29
171
172[ BUG FIXES ]
173
174- The 17set_return.t tests failed on leap days, like today. Reported
175  by Duncan Ferguson. RT #33695.
176
177
1780.41   2007-09-10
179
180[ BUG FIXES ]
181
182- The 13strftime.t test was failing when DateTime::Locale 0.35 was
183  installed. The test has been adjusted and we now list DT::Locale
184  0.35 as the minimum version. Reported by David Cantrell.
185
186
1870.40   2007-08-30
188
189[ BUG FIXES ]
190
191- A custom formatter would be lost after a call to set() or
192  truncate(). Reported by Kjell-Magne Øierud. RT #28728.
193
194- The truncate() method docs said it accepted "second" as a parameter,
195  but it didn't actually do the right thing with it. Now it always
196  truncates nanoseconds to 0 for any parameter it is passed.
197
198
1990.39   2007-07-17
200
201[ BUG FIXES ]
202
203- Yet more changes to how infinity is handled and tested. This passes
204  for me on 32-bit Win XP and 64-bit Linux, which is promising. Patch
205  by Yitzchak Scott-Thoennes. RT #22392.
206
207
2080.38   2007-06-30
209
210[ BUG FIXES ]
211
212- Require Test::Pod::Coverage 1.08 in pod-coverage.t, since we use
213  all_modules, which was only exported as of version 1.08. Reported by
214  MATSUNO Tokuhiro. Fixes RT #26594.
215
216- Fixed a bad link to the old FAQ location in the docs. Reported by
217  Ric Signes. Fixes RT #26846.
218
219[ ENHANCEMENTS ]
220
221- DateTime.pm now explicitly overloads string comparison. This was
222  done so that comparing a DateTime.pm object to a string returns
223  false, rather than throwing an exception. Reported by Chris
224  Dolan. Addresses RT #26085.
225
226
2270.37   2007-03-30
228
229[ BUG FIXES ]
230
231- Require DateTime::Locale 0.34, which fixes a problem that manifested
232  when thawing a DateTime.pm object. See
233  http://www.mail-archive.com/datetime@perl.org/msg05633.html for some
234  discussion of this.
235
236- Added pod coverage tests, and added some POD for undocumented
237  methods as a result.
238
239[ ENHANCEMENTS ]
240
241- This distro is now GPG-signed, per RT #24776.
242
243
2440.36   2007-01-18
245
246[ BUG FIXES ]
247
248- For infinity, use 100 ** 1000 instead of 100 ** 100 ** 100. This may
249  fix the problems with infinity on some platforms (or may
250  not). Suggested by Bjorn Tackmann. See RT #17390, #19626, and
251  #22392.
252
253- Require DateTime::TimeZone 0.59, which includes a similar fix.
254
255
2560.35   2006-10-22
257
258[ ENHANCEMENTS ]
259
260- Added several new methods for getting locale-based data, era_abbr(),
261  era_name(), quarter_abbr(), and quarter_name(). The era() method
262  returns the same data as era_abbr(), but is deprecated.
263
264
2650.34   2006-08-11
266
267[ BUG FIXES ]
268
269- DateTime's code to fall back to the pure Perl implementation was
270  broken in most cases, making it fairly useless. Reported by Adam
271  Kennedy and Brendan Gibson.
272
273- Under Perl 5.6.2 (and presumably 5.6.x), some of the tests
274  mysteriously failed. I tracked this down to a weird interaction
275  between DateTime's string overloading and
276  Test::Builder->cmp_ok(). See RT 19626.
277
278
2790.33   2006-08-09  (the "Asia/Kaohsiung" release)
280
281[ ENHANCEMENTS ]
282
283- Attempting to do an overloaded operation (add, subtract, compare)
284  with an inappropriate argument (like $dt + 1) gives a more useful
285  error message.
286
287[ BUG FIXES ]
288
289- The fixes in 0.30 for subtract_datetime() crossing a DST change had
290  a bug. When subtracting two dates, both occurring on a DST change
291  date, but where the dates did not cross the change, the answer was
292  off by an hour. Reported by Chris Prather. See RT 20697.
293
294- Borrowed a tweak from version.pm's Makefile.PL to make compiler
295  detection work with MSVC.
296
297
2980.32    2006-07-24
299
300[ BUG FIXES ]
301
302- Change how C compiler detection is done in the Makefile.PL so it
303  does not rely on having make on the system. The new way should work
304  on (most?) Unix and Win32 systems. Suggested by David Golden. See RT
305  18969.
306
307
3080.31    2006-05-21
309
310[ ENHANCEMENTS ]
311
312- Switched some uses of die() to Carp::croak(), where
313  appropriate. This should make error messages more useful in many
314  cases. Based on a suggestion by Max Maischein. See RT tickets 11692
315  & 18728.
316
317[ BUG FIXES ]
318
319- Removed all uses of UNIVERSAL::isa and UNIVERSAL::can as functions.
320
321- Tweaked 20infinite.t test to give more useful output for some
322  failures, though it probably doesn't fix them. See RT 17390.
323
324
3250.30    2005-12-22
326
327[ ENHANCEMENTS ]
328
329- Expanded and rewrote the docs on date math to try to explain exactly
330  how DateTime.pm works, and in particular cover the problems DST
331  introduces to various types of date math.  The docs now also include
332  some specific recommendations on getting sane results from datetime
333  math.
334
335- Added calendar_duration() and clock_duration() methods to
336  DateTime::Duration
337
338- Explicitly override the stringification method for
339  DateTime::Infinite objects.  They now stringify as whatever the IEEE
340  infinity and negative infinity numbers stringify to on your
341  platform.  On Linux this is "inf" and "-inf". CPAN RT #16632.
342
343[ BUG FIXES ]
344
345- delta_md() and delta_days() did not always return correct values
346  when crossing a DST change.
347
348- The pure Perl version of the code had a dependency ordering problem
349  where DateTime::LeapSecond depended on other pure Perl code that
350  wasn't yet available.  I'm not sure how this ever worked.
351
352- Remove mentions of leap second on 1971-12-31 from the docs, because
353  there was no leap second that day.  Reported by Mike Schilli.
354
355- If you added a second to a datetime that was on a leap second (like
356  2005-12-31T23:59:60) it got "stuck" and kept returning the same
357  datetime.  Reported by Mike Schilli.
358
359- Changes to the tests in 20infinite.t may fix failures seen on some
360  platforms and with new versions of Test::More (0.62 was known to
361  cause failures)
362
363[ *** BACKWARDS INCOMPATIBILITIES *** ]
364
365- The subtract_datetime() method switched back to using the local
366  portion of the date _and_ time, but it now accounts for days with
367  DST changes specially.  This produces results that fix the bugs that
368  were fixed by previous subtraction changes in 0.28 and 0.29, but
369  without introducing even more bugs.  The overall result should be
370  sane, but please see the docs for details.
371
372
3730.2901  2005-07-04
374
375- A leap second for the end of 2005 was announced.
376
377
3780.29    2005-06-03
379
380[ *** BACKWARDS INCOMPATIBILITIES *** ]
381
382- When adding/subtracting a duration with months or days that crossed
383  a DST change, the result was based on the local time, not the UTC
384  time.  For consistent results, it is necessary to use the UTC time
385  (but local date) for all date math.  Reported by J. Alexander
386  Docauer.
387
388
3890.28    2005-02-27
390
391[ ENHANCEMENTS ]
392
393- The era names for the era() method are now retrieved from the
394  DateTime.pm object's associated locale.  The old era() method, which
395  was hard-coded to use BCE and CE, is renamed secular_era().  The
396  christian_era() method remains the same.
397
398[ BUG FIXES ]
399
400- Fixed an embarassing bug in the subtract_datetime() method.  It was
401  subtracting local times, not UTC, which caused bugs when doing
402  subtraction across a DST change.  This method is used to implement
403  subtraction overloading, so that was affected as well.  Reported by
404  Mike Schilli.
405
406- The docs for the %U and %W strftime specifiers implied that these
407  should be zero-padded, but the code was not doing so.  Reported by J
408  Docauer.
409
410
4110.27    2005-01-31
412
413[ ENHANCEMENTS ]
414
415- Added local_rd_values() method for the benefit of other modules like
416  DateTime::Event::Recurrence.
417
418
4190.26    2005-01-27
420
421[ BUG FIXES ]
422
423- The docs claimed that the delta_ms(), delta_md(), delta_days()
424  methods always returned a positive duration, but this was not true
425  for delta_md() or delta_days().
426
427
4280.25    2005-01-10 (the "new year, new bugs" release)
429
430[ BUG FIXES ]
431
432- Calling set_time_zone() for a datetime very close to a time zone
433  change died for many of the Olson time zones.
434
435- The docs for the from_object constructor said that by default, new
436  objects were in the UTC time zone, but in reality the default was
437  the floating time zone.  The docs were changed to match the code.
438  Ticket 9278 on rt.cpan.org.
439
440
4410.24    2004-12-10 (the "have I mentioned I hate leap seconds" release)
442
443[ BUG FIXES ]
444
445- Fixed even more bugs related to leap seconds and time zones.
446  Reported by Eugene van der Pijll.
447
448[ KNOWN BUGS ]
449
450- Offsets with a seconds portion (like "+00:00:30") act strangely near
451  leap seconds.  Reported by Eugene van der Pijll.  This will be fixed
452  in a future release.
453
454
4550.23    2004-12-09 (the "oh how I hate leap seconds" release)
456
457[ ENHANCEMENTS ]
458
459- Added a number of convenience "set" methods: set_year, set_month,
460  set_day, set_hour, set_minute, set_second, set_nanosecond, and
461  set_locale.  Suggested by Michael Schwern.
462
463- Added christian_era and year_with_christian_era methods.
464
465- Clarified that from_epoch(), today(), and now() all return objects
466  in the UTC time zone.  Suggested by Sagar Shah and others.
467
468- Added formatter parameter to constructor, which allows per-object
469  stringification.  Based on a patch from Daisuke Maki.
470
471[ BUG FIXES ]
472
473- Trying to serialize DateTime::Infinite objects with Storable blew
474  up.  Patch by Daisuke Maki.
475
476- Require Test::More 0.34+, since I use a function introduced in that
477  version in the tests.  Suggested by Jean Forget.
478
479- Fix a bug in strftime() which could cause weirdness with
480  pathological specifiers like "%%{day_name}%n".  Reported by Jean
481  Forget.
482
483- Fixed a number of bugs related to leap seconds and time zones.
484  Reported by Eugene van der Pijll.
485
486
4870.22    2004-07-23
488
489[ *** BACKWARDS INCOMPATIBILITIES *** ]
490
491- The leap second table we were using mistakenly included a leap
492  second on December 31, 1971.  This will break all versions of the
493  DateTime::Format::Epoch::TAI64 module up to and including version
494  0.06.  Most users of DateTime.pm will not be affected.  Patch by
495  Joshua Hoblitt.
496
497
4980.2101  2004-06-10
499
500[ BUG FIXES ]
501
502- There was a bug in the date math code that occurred if you tried to
503  add enough days, minutes or seconds to generate a datetime 10 years
504  in the future (or so).  If the the DateTime object had a a time zone
505  with recurring DST changes, then the date math operation would cause
506  a fatal error "Invalid local time for date in time zone ...".
507  Reported by Dave Faraldo.
508
509
5100.21  2004-03-28 (The "Another YAPC::Taipei release party release" release)
511
512[ *** BACKWARDS INCOMPATIBILITIES *** ]
513
514- When given mixed positive & negative arguments, DateTime::Duration
515  no longer forces all arguments to be negative.
516
517- For mixed durations, the is_positive, is_zero, and is_negative
518  methods all return false.
519
520- Brought back stringification overloading.  As of version 1.06,
521  Devel::StackTrace will ignore this overloading when displaying a
522  trace.
523
524[ ENHANCEMENTS ]
525
526- Add a new in_units() method to DateTime::Duration.  Patch by Andrew
527  Pimlott.
528
529- Rely on DateTime::TimeZone and DateTime::Locale having their own
530  Storable hooks, as opposed to handling them in DateTime.pm's own
531  Storable hooks.  This should fix RT ticket #5542, reported by Dan
532  Rowles (I hope).
533
534- More docs on how date math is done.  See the new section "The
535  Results of Date Math".
536
537[ BUG FIXES ]
538
539- DateTime::Duration's is_positive, is_zero, and is_negative methods
540  could incorrectly return true if a duration contained mixed positive
541  and negative units.
542
543- Better normalization of nanoseconds in DateTime::Duration.  Patch by
544  Andrew Pimlott.
545
546
5470.20  2004-02-12
548
549[ IMPROVEMENTS ]
550
551- Tweaked the "How Date Math is Done" section in DateTime.pm to
552  provide some more explicit examples.
553
554[ BUG FIXES ]
555
556- If seconds are not negative, DateTime::Duration will try to keep
557  nanoseconds >= 0 when normalizing them to seconds, as long as this
558  doesn't make seconds become negative.  Suggested by Andrew Pimlott.
559
560- In the datetime subtraction code, there was an off-by-one error in
561  the code to determine if one of the datetimes occurred in a minute
562  containing a leap second.  This led to the result of the subtraction
563  being off by one second.  Patch by Andrew Pimlott.
564
565- A duration's nanoseconds weren't normalized after multiplication.
566  Patch by Andrew Pimlott.
567
568
5690.1901  2004-01-07  (the "people care about ancient history?" release)
570
571[ BUG FIXES ]
572
573- The day of week was totally busted for dates before 0000-12-25.
574  Reported by Flavio Glock.
575
576
5770.19  2003-12-01  (the "never look before a leap second" release)
578
579[ IMPROVEMENTS ]
580
581- DateTime::Duration now provides a compare() class method.
582
583- DateTime::Duration now overloads comparison to throw an exception,
584  because comparison requires a base DateTime object.  Note that
585  previous versions of DateTime::Duration _did not_ overload
586  comparison, so if you were comparing them, you were just comparing
587  the value of the object references.  Thanks to Rick Measham, Jon
588  Swartz, and Max Maischein for contributing to the discussion on
589  datetime@perl.org about how to implement this feature.
590
591- Added DateTime::Duration->multiply to complement multiplication
592  overloading.
593
594- Added a leap_seconds method.
595
596- Added a section to the docs about floating datetimes.
597
598- DateTime::LeapSecond no longer contains code copied from
599  DateTime.pm, instead it just uses DateTime.pm directly.  Patch by
600  Joshua Hoblitt.
601
602[ BACKWARDS INCOMPATIBILITIES ]
603
604- DateTime::LeapSecond's leap_seconds() function now returns the
605  number of leap seconds that have occurred, as opposed to the
606  difference between TAI and UTC for a given Rata Die day, which is
607  what it was returning previously.  This means that the values it
608  returns are 9 second less than the previous version.  This does not
609  affect DateTime.pm because it never looke at the actual value, just
610  the difference between two leap second values, which remains the
611  same.
612
613
6140.18  2003-10-26  (the "delta, delta, delta, can I help ya, help ya, help ya?" release)
615
616[ IMPROVEMENTS ]
617
618- Added several new methods for calculating the difference between two
619  datetime objects.  These are delta_md(), delta_days(), and
620  delta_ms().  Each of these methods returns the difference as a
621  duration containing just certain units.
622
623[ BUG FIXES ]
624
625- Require Pod::Man 1.14+, so that head3/head4 markup doesn't cause
626  installation to die.
627
628[ BACKWARDS INCOMPATIBILITIES ]
629
630- The local_rd_as_seconds method is deprecated, as it doesn't really
631  serve much purpose.
632
633
6340.1705  2003-10-07
635
636[ BUG FIXES ]
637
638- Subtracting one datetime from another was still broken, and my fix
639  in 0.1704 broke many other subtractions.  Reported by Pierre Denis
640  again.  Many thanks to Pierre for paying attention.
641
642- Subtracting datetimes where the subtraction crossed a leap second
643  was also broken.
644
645
6460.1704  2003-10-07
647
648[ IMPROVEMENTS ]
649
650- Documented the behavior of strftime() when given an invalid format.
651
652
653[ BUG FIXES ]
654
655- The DateTime::Duration synopsis showed a sign() method that doesn't
656  exist, so I removed it from the synopsis.  Reported by Flavio Glock.
657
658- Subtracting one datetime from another was seriously broken.  The
659  values for days & weeks were wrong in many cases.  Reported by
660  Pierre Denis.
661
662
6630.1703  2003-09-22
664
665
666[ BUG FIXES ]
667
668- truncate( to => 'week' ) caused a fatal error when the beginning of
669  the week was in the previous month.  Reported by R. Mathews
670  (rt.cpan.org #3843).
671
672
6730.1702  2003-09-18
674
675[ IMPROVEMENTS ]
676
677- Added truncate( to => 'week' ).  Suggested by Flavio Glock.
678
679
6800.1701  2003-09-15
681
682[ BUG FIXES ]
683
684- If from_epoch was given a fractional epoch with a floating point
685  value with more than 9 digits after the decimal point, the object
686  ended up containing a floating point number of nanoseconds.  We now
687  truncate this number to an integer.  Fixed by Joshua Hoblitt.
688
689- The %V strftime specifier was documented, but not implemented.
690  Reported by Joshua Hoblitt.
691
692- Test #56 in 03components.t would die with "Invalid offset: -124"
693  when run with DateTime::TimeZone 0.2502+.  Next time, I'll read my
694  own docs ;)
695
696
6970.17  2003-08-29  (the "math is hard" release)
698
699[ BACKWARDS INCOMPATIBILITIES ]
700
701- The default end_of_month mode for negative durations is now
702  "preserve".  This makes more sense, as the previous default meant
703  that the following code:
704
705    print DateTime->new( year => 2003, month => 5, day => 31 )
706                  ->subtract( months => 1 )->ymd;
707
708  printed "2003-05-01" as opposed to "2003-04-30".  Thanks to Thomas
709  Klausner for starting a discussion on this problem.
710
711- The subtract_datetime method now returns different results, as does
712  subtraction overloading when both sides of the subtraction are
713  DateTime objects.
714
715  The subtract_datetime_absolute method returns results similar to
716  what was previously returned from subtract_datetime.
717
718  Thanks to Matthew McGillis for bringing this up, and Joshua Hoblitt
719  and Eugene van der Pijll for contributing to the ensuing discussion.
720
721[ IMPROVEMENTS ]
722
723- DateTime.pm compare() method is now documented to work with any
724  other calendar class that provides a utc_rd_values() method.
725
726- Added the subtract_datetime_absolute method.  See the docs for
727  details.
728
729- Documented the inverse() method in DateTime::Duration.
730
731
7320.1601  2003-08-07
733
734[ BUG FIXES ]
735
736- On platforms like Win32, where we can't find a finite() or
737  isfinite() function/macro, the DateTime::LeapSecond code wasn't
738  being loaded, so many tests failed.  Reported by Ron Hill.
739
740
7410.16    2003-08-06
742
743[ IMPROVEMENTS ]
744
745- The XS code now implements leap second-related calculations.
746  However, this is only used on platforms where we can find a usable
747  finite() or isfinite() function/macro, so it isn't used on Win32.
748
749- This distro has now borged the DateTime::LeapSecond module.  It is
750  only loaded when the XS leap second code cannot be used.
751
752- Other miscellaneous performance improvements.
753
754
7550.1503  2003-07-31
756
757[ BUG FIXES ]
758
759- Adding a duration with delta months to an infinite DateTime was
760  quite broken.  Reported by Eugene van der Pijll.
761
762
7630.1502  2003-07-31
764
765[ BUG FIXES ]
766
767- XSLoader wasn't the problem on Solaris, so it's back.
768
769- Now loading the XS version of DateTime.pm is wrapped in an eval
770  block.  If it fails with an error about the object version not
771  matching, the pure Perl version is loaded instead.  This should fix
772  Solaris.  Thanks to Joshua Hoblitt for identifying this bug.
773
774
7750.1501  2003-07-30
776
777[ BUG FIXES ]
778
779- Fixed the from_object() method to set the returned object's time
780  zone to the floating time zone if the source object did not have a
781  time zone, as specified in the docs.  Previously, the returned
782  object's time zone was UTC.  Patch by Eugene van der Pjill.
783
784- For this release, at least, the module always uses Dynaloader.  This
785  is in order to see if this fixes a problem on Solaris where the
786  install library version of the DateTime .so file is loaded instead
787  of the newly compiled version in the blib directory.
788
789
7900.15    2003-07-29
791
792[ IMPROVEMENTS ]
793
794- The utc_rd_values() method now returns nanoseconds in addition to
795  Rata Die days and seconds.  Based on a patch by Joshua Hoblitt.
796
797- The from_object() method expects objects to return the same values
798  from their utc_rd_values() methods.  Based on a patch by Joshua
799  Hoblitt.
800
801[ BUG FIXES ]
802
803- Fixed a bug in the pure Perl version of _normalize_tai_seconds that
804  caused very weird results from datetime math.  This version may be
805  used on platforms where the XS code compiles, so it can affect quite
806  a number of systems.  Reported by Dan Sully.
807
808
8090.1402   2003-07-24
810
811[ BUG FIXES ]
812
813- Fix DefaultLocale method, which didn't work at all.  Reported by
814  Serge Leger.
815
816
8170.1401   2003-07-24
818
819[ BUG FIXES ]
820
821- Fix a test failure in 13strftime.t under Perl 5.6.1 (and probably
822  5.6.0).
823
824
8250.14     2003-07-23
826
827[ BACKWARDS INCOMPATIBILITIES ]
828
829- The DateTime::Language modules are no longer being developed or
830  distributed as part of the DateTime.pm distribution.
831
832  Because of this, all "language" parameters should now be replaced by
833  "locale" parameter.  The "language" parameter is deprecated and will
834  be removed in a future release.
835
836  Also note that locales should be specified via ISO codes, not names
837  like "English".  The old DateTime::Language names will continue to
838  work indefinitely, but they load DateTime::Locale objects instead.
839
840  Locale-specific data will be returned in utf8 when necessary.
841
842- Similarly, the "language" and "DefaultLanguage" methods are now
843  deprecated in favor of "locale" and "DefaultLocale".
844
845
846[ IMPROVEMENTS ]
847
848- DateTime::Duration now returns the object from mutator methods, in
849  order to make method chaining possible.  Suggested by Ben Bennett.
850
851- If the value for second given to new() is 60 or 61, then it must be
852  a valid leap second.
853
854- DateTime now uses DateTime::Locale for localization, which allows
855  for real language and territory based localization.  The locale code
856  is generated from the ICU project's data, and is much more complete
857  than the DateTime::Language modules.  However, we are losing
858  (hopefully only temporarily) support for the various African
859  languages contributed by Daniel Yacob.  Support for those languages
860  should return in a future release of DateTime::Locale.
861
862- Support for the '%c', '%x', and '%X' strftime format specifiers,
863  which output localized date and time strings.
864
865- Added the time_zone_long_name method, primarily for the benefit of
866  DateTime::Locale.
867
868- Added a note to the DateTime::Infinite docs warning that it may not
869  work well on Win32.
870
871[ BUG FIXES ]
872
873- DateTime::Duration was not consistent in how it handled mixed
874  positive and negative constructor parameters.  Reported by Ben
875  Bennett.
876
877
8780.13     2003-05-05
879
880[ IMPROVEMENTS ]
881
882- DateTime now does more validation of parameters given to
883  constructors and to the set() method, so bogus values like a month
884  of 13 are a fatal error.
885
886- Added a new constructor, from_day_of_year().
887
888- Added a number of new "get" methods, including era, year_with_era,
889  hour_1, hour_12, hour_12_0, weekday_of_month, and week_of_month.
890  Based in part on a patch from Rick Measham.
891
892- Now any object method can be called in strftime format by using
893  "%{method}" as a format specifier.  Patch from Rick Measham
894
895- Added an is_zero method to DateTime::Duration, for objects of zero
896  length.
897
898- DateTime->from_epoch will now accept a floating point epoch and turn
899  the post-decimal portion into nanoseconds.  This was done in order
900  to interface more accurately with Time::HiRes.
901
902- Added a DateTime->hires_epoch method that returns a floating point
903  value for epoch, also for compatibility with Time::HiRes.
904
905- DateTime.pm now implements Storable hooks to reduce the size of
906  serialized DateTime objects.  In particular, the contained time zone
907  object is not serialized along with the DateTime object.
908
909- It is now possible to create arbitrary DateTime::Language subclasses
910  in any namespace.
911
912[ BUG FIXES ]
913
914- "Fixed" 20infinite.t failures on Windows with 2 icky hacks.  The
915  first simply doesn't compile the XS code that deals with infinite
916  numbers on Win32, so the pure Perl version is used instead.
917  However, the rest of the XS code is still compiled on Win32.  The
918  other hack is to simply skip a failing test in 20infinite.t on
919  Win32.  Hopefully, this will eventually be fixed but given that this
920  is not core functionality for most users, I'd rather get this
921  release out the door now.
922
923- Fix epoch() method to work properly with dates greater than 50 years
924  ago.  Apparently, if Time::Local is given a year less than 100, it
925  tries to guess the century, and it doesn't do this by simply adding
926  1900.  Numbers less than 53 (for the year 2003) are treated as being
927  in the current century.  Ugh.
928
929- Fixed compilation on HPUX.  Patch from Dan Sully.
930
931- The last_day_of_month() method did not accept a nanosecond
932  parameter.
933
934- A DT::Duration object created with just nanoseconds was always
935  positive, regardless of the value given for nanoseconds.
936
937- Fixed a serious bug when subtracting one datetime from another that
938  could cause the result to be off by up to a second, and negative
939  when it should be positive.  This was caused by the introduction of
940  nanoseconds in 0.10.
941
942- A zero length duration reported itself as positive when it should be
943  neither positive nor negative.
944
945- In Perl 5.6.1/Red Hat Linux 7.2, multiplying a variable with value
946  zero by -1 gives negative-zero, which breaks tests.
947
948    perl -e ' $x=0; $x*=-1; print $x '
949
950    -0
951
952  Patch by Flavio Glock.
953
954- Comparing a DateTime::Infinite object to a regular datetime could
955  cause a fatal error.  Reported by John Peacock.
956
957- Fixed a failure in the 04epoch.t tests on Win32.  Negative epoch
958  values don't work on Win32.
959
960[ BACKWARDS INCOMPATIBILITIES ]
961
962- The "Portugese" language module has been renamed to "Portuguese".
963  I'm so embarassed!  Reported by Richard Evans.
964
965- DateTime::Infinite objects no longer die if "set" methods are
966  called.  Instead, these methods are now no-op methods that simply
967  return the original object.  This makes these objects more usable
968  when mixed with regular datetime objects.
969
970- Removed the fractional_second constructor parameter.  It was
971  incorrectly documented anyway.  The fractional_second _accessor_ is
972  still there.
973
974- DateTime::Duration objects of zero length no longer return true for
975  is_positive.
976
977
9780.12     2003-05-05
979
980[ BUG FIXES ]
981
982- Make sure tests always run with warnings on.
983
984- Fix line that had "$] >= 5.6.0" to be "$] >= 5.006".  This caused
985  warnings and was just wrong.  Reported by John Siracusa.
986
987- Quiet warnings from pure Perl implementation.
988
989- Quiet warnings from language modules with Unicode when used with
990  Perl 5.00503.
991
992
9930.11     2003-05-03
994
995[ IMPROVEMENTS ]
996
997- Moved a little bit of the leap second code to XS, so DateTime.pm may
998  be a tiny bit faster.
999
1000- Added name() method to DateTime::Language.  Suggested by Rick
1001  Measham.
1002
1003- Use XSLoader with Perl 5.6.0+, which according to ancient
1004  perl5-porters discussions saves some memory.
1005
1006- Added infinite DateTime objects.  See the DateTime::Infinite docs
1007  for details.
1008
1009[ BUG FIXES ]
1010
1011- The %I and %l strftime formats were formatting hours as 0-11, not
1012  1-12 as documented.  Patch by Simon Newton.
1013
1014- A DateTime::Duration object created only with weeks as a parameter
1015  always was positive.  Fixed by Flavio Glock.
1016
1017[ BACKWARDS INCOMPATIBILTIES ]
1018
1019- Because of changes in DateTime::TimeZone 0.13, which this version
1020  now requires, when a local time is ambiguous, the latest UTC time is
1021  used, rather than the earliest, as was done previously.
1022
1023- The Brazilian language module has been renamed as Portugese.
1024
1025- Removed DateTime::Duration->compare (which I forgot to document
1026  anyway ;) and comparison overloading for DT::Duration.  There's no
1027  meaningful way to compare 60 days to 2 months.
1028
1029
10300.10     2003-04-19 (the "I'm sure the new regime will be spiffy" release)
1031
1032[IMPROVEMENTS]
1033
1034- Added Tigre language module.  Contributed by Daniel Yacob.
1035
1036- DateTime::Duration objects now overload multiplication.  Implemented
1037  by Flavio Glock.
1038
1039- Added support for nanoseconds in DateTime.pm and DateTime::Duration.
1040  Implemented by Flavio Glock.
1041
1042- Added complete support for leap seconds (through use of
1043  DateTime::LeapSecond).  Mostly implemented by Flavio Glock.
1044
1045[ BACKWARDS INCOMPATIBILTIES ]
1046
1047- Because of the addition of leap seconds to the mix, we are now
1048  forced to handle seconds separately from minutes when doing date
1049  math.  This means that several aspects of the DateTime::Duration API
1050  have changed.  Specifically:
1051
1052-- There is now an additional delta_minutes() method.
1053-- The hash returned by the deltas() method now includes a "minutes" key.
1054-- The seconds delta may be greater than 59.
1055-- The seconds() method may return a number greater than 59.
1056
1057
10580.09     2003-04-05 (the "liberation through violence" release)
1059
1060[IMPROVEMENTS]
1061
1062- As requested by numerous people, there is now a pure Perl
1063  implementation of DateTime.pm included with this distribution.  If
1064  you don't have a C compiler it will be used instead of the XS
1065  implementation.
1066
1067- Document how floating time zones are handling in comparisons, and
1068  add the compare_ignore_floating method.  Based on a patch from
1069  Eugene van der Pijll.
1070
1071- Allow from_epoch(), now(), and today() to accept a time_zone
1072  parameter.  Based on suggestions from Tim Bunce and Joshua Hoblitt.
1073
1074- Allow extraction of AM/PM string list from DateTime::Language classes.
1075
1076- Added quarter() and day_of_quarter() methods.  Based on a patch from
1077  Tim Allwine.
1078
1079[BUG FIXES]
1080
1081- If a datetime had the floating timezone and then set_time_zone was
1082  used to set it to something else, the internal UTC time of the
1083  object was not changed, meaning that its offset could be calculated
1084  incorrectly.  Patch by Eugene van der Pijll.
1085
1086- If datetime math was done with hours, minutes, or seconds, the
1087  return value of ->epoch would be wrong after this.  Based on report
1088  and patch from Iain Truskett.
1089
1090
10910.08     2003-03-21 (the "anti-war" release)
1092
1093[IMPROVEMENTS]
1094
1095- All set/modify methods now return the datetime object, in order to
1096  make method chaining possible.  Patch by Iain Truskett.
1097
1098- The _greg2rd and _rd2greg methods have been renamed _ymd2rd and
1099  _rd2ymd, so as to make them look more normal when used in
1100  subclasses.
1101
1102- Added a truncate() method.  Suggested by Flavio Glock.
1103
1104- Added Swedish language module.  Contributed by Christian Hansen.
1105
1106- Added language modules for Afar, Amharic, Gedeo, Oromo, Sidama,
1107  Somali, and Tigrinya (Eritrean and Ethiopian), all courtesy of
1108  Daniel Yacob.
1109
1110- Various doc improvements, including a section on invalid local
1111  times.
1112
1113[BUG FIXES]
1114
1115- The week() method was wrong for many dates.  Reported by Christian
1116  Hansen.
1117
1118- The last_day_of_month() method had the DateTime class hard-coded in
1119  it.  Reported by Eugene van der Pijll.
1120
1121- Fixed a bug when comparing a datetime object to infinity (or
1122  negative infinity).  Fixed by Flavio Glock.
1123
1124- Date math has been fixed so that it affects the _local_ times.  This
1125  means that sometimes 1 day is not equal to 24 hours when the
1126  addition/subtraction crosses over a Daylight Saving Time change.
1127  See the "How Date Math is Done" section of the docs for more
1128  details.
1129
1130[BACKWARDS INCOMPATIBILITIES]
1131
1132- Objects constructed via the new() method now have a "floating" time
1133  zone by default, instead of using the "local" time zone.  This is
1134  just simpler to deal with, and for code where time zones are
1135  unimportant, this is the most appropriate default.
1136
1137
11380.07     2003-02-26
1139
1140[IMPROVEMENTS]
1141
1142- Added a small hack to the compare() method so that this module can
1143  be used with Set::Infinite.
1144
1145- Changed compare so that it can be used to compare two objects from
1146  different calendars that conform to the DateTime::Calendar
1147  interface.
1148
1149- Added explanation of exactly what calendar this module represents
1150  ("proleptic Gregorian calendar") to docs.
1151
1152- Added a Spanish language DateTime::Language subclass.  Implemented
1153  by Flavio S. Glock.
1154
1155- Added support for specifying a language by ISO code ("en" or
1156  "pt-br") as well as the subclass name.  Based on a patch from Eric
1157  Cholet.
1158
1159- Revamped the externally visible DateTime::Language API.
1160
1161- Objects created via the from_object() method are set to the time
1162  zone of the object from which they were created, if it has one, or
1163  UTC otherwise.
1164
1165[BUG FIXES]
1166
1167- The from_object() method was broken because it retrieved a UTC
1168  datetime from the object passed in, and then created a new DateTime
1169  object using that UTC time as a _local_ time.
1170
1171[BACKWARDS INCOMPATIBILITIES]
1172
1173- Removed stringification overloading.  Having this in place made it
1174  impossible to create a strack trace in much of the time zone code.
1175
1176- Renamed the DateTime::Language->subclasses method as languages.
1177
1178- It is no longer possible to directly instantiate a
1179  DateTime::Language subclass, instead use:
1180
1181    my $en = DateTime::Language->new( language => 'English' );
1182
1183- The from_object() method no longer accepts a "time_zone" parameter.
1184
1185
11860.06     2003-02-16
1187
1188- The docs said that there was no year 0 in the Gregorian calendar,
1189  but that was wrong.  The year() method can now return 0.  The
1190  year_0() method has been removed.
1191
1192- Added jd() and mjd() methods.
1193
1194- Re-implemented some of the core code in XS for speed.
1195
11960.05     2003-02-13
1197
1198- Fix handling and reporting of epoch times.  Epoch times are, by
1199  definition, UTC times, so any time created from an epoch should
1200  always have its time zone set to "UTC".  This can be changed after
1201  the object is created.  Similarly, value returned by the epoch()
1202  method needs to be based on the object's UTC time, not it's local
1203  time.  Bug reported by Kellan Elliott-McCrea.
1204
1205- Change year_0 so that -1 BCE is 0, not 1 CE.  This corresponds to
1206  astronomical years.
1207
1208- Change ymd, dmy, mdy, and iso8601 to use Gregorian years (..., -2,
1209  -1, 1, 2, ... ) as opposed to astronomical years.  Also make sure
1210  all negative years are formatted as 4 digits.
1211
12120.04     2003-02-10
1213
1214- Explicitly set time zone for objects created during tests.
1215
12160.03     2003-02-09
1217
1218- Giving a language parameter to a constructor method didn't load the
1219  language class.
1220
1221- Test that all language classes are at least loadable.
1222
1223- Added Brazilian (not quite a language ;) and Danish, again stolen
1224  from Graham Barr's TimeDate suite.
1225
1226- Added is_dst method.  Requested by Matt Sergeant.
1227
12280.02     2003-02-09
1229
1230- Fixed a bug in calculating day of year in leap years (it was +1 off
1231  starting in February).  Reported by Matt Sergeant.
1232
1233- Subtracting one datetime from another was broken in most cases.
1234  Improved the tests for this quite a bit.  Reported by Eric Cholet.
1235
1236- Made the version number a non-dev-release so it's visible when
1237  CPAN.pm tries to install it as a prereq for something else.
1238
12390.01_00  2003-02-04
1240
1241- The first alpha release.  This module draws on Date::ICal for much
1242  of its internals, so it has more history than a normal alpha
1243  release.
1244