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