forked from houseabsolute/DateTime.pm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
1857 lines (1130 loc) · 56.3 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{{$NEXT}}
1.43 2017-05-29
- Added a small optimization for boolification overloading. Rather than
relying on a fallback to stringification, we now return true directly, which
is a little faster in cases like "if ($might_be_dt) { ... }".
- The datetime() method now accepts a single argument to use as the separate
between the date and time portion. This defaults to "T".
1.42 2016-12-25
- The DateTime::Duration->add and ->subtract methods now accept
DateTime::Duration objects. This used to work by accident, but this is now
done intentionally (with docs and tests). Reported by Petr Pisar. GitHub
#50.
1.41 2016-11-16
- The DateTime->add and ->subtract methods now accept DateTime::Duration
objects. This used to work by accident, but this is now done intentionally
(with docs and tests). Based on PR #45 from Sam Kington.
1.40 2016-11-12
- Switched from RT to the GitHub issue tracker.
1.39 2016-09-17
- Bump minimum required Perl to 5.8.4 from 5.8.1. Looking at CPAN Testers,
this distro hasn't actually passed with earlier Perl versions since
1.35. I'm not explicitly testing with anything earlier than 5.8.8
1.38 2016-09-16
- This release includes changes from past trial releases to switch from
Params::Validate and Params::ValidationCompiler. Relevant release notes from
those trial releases are repeated here for clarity.
- Replaced Params::Validate with Params::ValidationCompiler and Specio. In my
benchmarks this makes constructing a new DateTime object about 14%
faster. However, it slows down module load time by about 100 milliseconds
(1/10 of a second) on my desktop system with a primed cache (so really
measuring compile time, not disk load time).
- When you pass a locale to $dt->set you will now get a warning suggesting you
should use $dt->set_locale instead. The previous trial releases didn't allow
locale to be passed at all, which broke a lot of modules. I've sent PRs, but
for now the parameter should be allowed (but discouraged). Reported by
Slaven Rezić. RT #115420.
- Removed the long-deprecated DateTime->DefaultLanguage method. Use
DefaultLocale instead.
- Removed the long-deprecated "language" constructor parameter. Use "locale"
instead.
1.37 2016-08-14 (TRIAL RELEASE)
- Require the latest Params::ValidationCompiler (0.11).
1.36 2016-08-06
- Require namespace::autoclean 0.19.
1.35 2016-08-05
- Use namespace::autoclean in all packages which import anything. Without
cleaning the namespace, DateTime ends up with "methods" like try and catch
(from Try::Tiny), which can lead to very confusing bugs. Reported by Mischa
Schwieger. RT #115983.
1.34 2016-07-06
- Added the leap second coming on December 31, 2016.
1.33 2016-06-29
- Fixed the $dt->set docs to say that you cannot pass a locale (even though
you can but you'll get a warning) and added more docs for $dt->set_locale.
- Require DateTime::Locale 1.05.
- Require DateTime::TimeZone 2.00.
1.32 2016-06-28
- This release *does not* include any of the changes in the 1.29-1.30 TRIAL
releases.
- When you pass a locale to $dt->set you will now get a warning suggesting you
should use $dt->set_locale instead. If you have DateTime::Format::Mail
installed you should upgrade to 0.0403 or later, since that module will
trigger this warning.
- Added support for $dt->truncate( to => 'quarter' ). Implemented by Michael
Conrad. GitHub #17.
1.31 2016-06-18 (TRIAL RELEASE)
- When you pass a locale to $dt->set you will now get a warning suggesting you
should use $dt->set_locale instead. The previous trial releases didn't allow
locale to be passed at all, which broke a lot of modules. I've sent PRs, but
for now the parameter should be allowed (but discouraged). Reported by
Slaven Rezić. RT #115420.
1.30 2016-06-18 (TRIAL RELEASE)
- Require the latest version of Params::ValidationCompiler (0.06). Tests failed
with 0.01.
1.29 2016-06-17 (TRIAL RELEASE)
- Replaced Params::Validate with Params::ValidationCompiler and Specio. In my
benchmarks this makes constructing a new DateTime object about 14%
faster. However, it slows down module load time by about 100 milliseconds
(1/10 of a second) on my desktop system with a primed cache (so really
measuring compile time, not disk load time).
1.28 2016-05-21
- Fixed handling of some floating point epochs. Because DateTime treated the
epoch like a string instead of a number, certain epochs with a non-integer
value ended up treated like integers (Perl is weird). Patch by Christian
Hansen. GitHub #15. This also addresses the problem that GitHub #6 brought
up. Addresses RT #96452, reported by Slaven Rezić.
1.27 2016-05-13
- Added an environment variable PERL_DATETIME_DEFAULT_TZ to globally set the
default time zone. Using this is very dangerous! Be careful!. Patch by
Ovid. GitHub #14.
1.26 2016-03-21
- Switched from Module::Build to ExtUtils::MakeMaker. Implementation by Karen
Etheridge. GitHub #13.
1.25 2016-03-06
- DateTime->from_object would die if given a DateTime::Infinite object. Now it
returns another DateTime::Infinite object. Reported by Greg Oschwald. RT
#112712.
1.24 2016-02-29
- The last release partially broke $dt->time. If you passed a value to use as
unit separator, this was ignored. Reported by Sergiy Zuban. RT #112585.
1.23 2016-02-28
- Make all DateTime::Infinite objects return the system's representation of
positive or negative infinity for any method which returns a number of
string representation (year(), month(), ymd(), iso8601(), etc.). Previously
some of these methods could return "Nan", "-Inf--Inf--Inf", and other
confusing outputs. Reported by Greg Oschwald. RT #110341.
1.22 2016-02-21 (TRIAL RELEASE)
- Fixed several issues with the handling of non-integer values passed to
from_epoch().
This method was simply broken for negative values, which would end up being
incremented by a full second, so for example -0.5 became 0.5.
The method did not accept all valid float values. Specifically, it did not
accept values in scientific notation.
Finally, this method now rounds all non-integer values to the nearest
millisecond. This matches the precision we can expect from Perl itself (53
bits) in most cases.
Patch by Christian Hansen. GitHub #11.
1.21 2015-09-30
- Make all tests pass with both the current DateTime::Locale and the upcoming
new version (currently still in trial releases).
1.20 2015-07-01
- The 1.18 release added the June 30, 2015 leap second to the XS code, but I
forgot to update the corresponding pure Perl implementation in
DateTime::LeapSecond.
1.19 2015-05-31
- If you compared a DateTime object to an undef value, you might have received
a warning pointing to code inside DateTime.pm, instead of in your own
code. Fixed by Jason McIntosh. GH #7.
- The 30future-tz.t could fail if run at certain very specific times. This
should now be much less likely, unless a time zone being tested implements a
DST change at noon (which would even more insane than DST already is by a
huge factor). Reported by Karen Etheridge and diagnosed by Slaven Rezić. RT
#102925.
1.18 2015-01-05
- There will be a new leap second on June 30, 2015.
1.17 2015-01-04
- No code changes from the 1.16 release.
1.16 2015-01-04 (TRIAL RELEASE)
- Test fix for systems where IVs are 4 bytes long.
1.15 2015-01-03 (TRIAL RELEASE)
- Trying this again ... Experimental fix for adding very large numbers of
days. Previously, trying to add more than around 2^28 days could cause
errors if the result ended up in a leap year. This is being released as a
trial release because I'm not sure how this change will behave on a 32-bit
Perl. Reported by KMX. RT #97046.
1.14 2015-01-03
- Accidentally released 1.13 as a non-TRIAL release. Releasing 1.13 minus the
integer change so there's a known-safe stable release on CPAN for people to
install.
1.13 2015-01-03
* This release was deleted from CPAN.
- Experimental fix for adding very large numbers of days. Previously, trying
to add more than around 2^28 days could cause errors if the result ended up
in a leap year. This is being released as a trial release because I'm not
sure how this change will behave on a 32-bit Perl. Reported by KMX. RT
#97046.
- Various small doc chances to address RT #96958, #98733, and #101262.
1.12 2014-08-31
- The last release had the wrong repo info in the metadata.
1.11 2014-08-31
- The latest historical changes in DateTime::TimeZone 1.74 caused some tests
to fail. Reported by Slaven Rezić. RT #98483.
- This release of DateTime.pm now requires the DateTime::TimeZone 1.74.
1.10 2014-05-05
- Some tests added in 1.09 would fail on a Perl without a 64-bit
gmtime(). Reported by Jerome Eteve. RT #95345.
1.09 2014-05-03
- A call to ->truncate( to => 'week' ) could fail but leave the object
changed. RT #93347.
- The value of ->jd() is now calculated based on ->mjd() instead of the other
way around. This reduces floating point errors a bit when calculating MJD,
and should have a neglible impact on the accuracy of JD. Reported by Anye
Li. RT #92972. See the ticket for a more detailed description of what this
fixes.
- Attempting to construct a DateTime object with a year >= 5000 and a time
zone other than floating or DST now issues a warning. This warning may go
away once DateTime::TimeZone is made much faster. Inspired by a bug report
from Lloyd Fournier. RT #92655.
1.08 2014-03-11
- DateTime now calls DateTime->_core_time() instead of calling Perl's time()
built-in directly. This makes it much easier to override the value of time()
that DateTime sees. This may make it easier to write tests for code that
uses DateTime .
1.07 2014-02-06
- Added a hack to get this module working on Android. RT #92671.
1.06 2013-12-31
- DateTime's attempt to generate infinity by calculating 9**9**9 actually got
a number on some platforms, like powerpcspe. Reported by Gregor Hermann. RT
#91696.
1.05 2013-12-22
- Added a new CLDR ZZZZZ specifier, which is like ZZZ but inserts a
colon. Patch by Ricardo Signes.
- Added a new option for the truncate() method to truncate to the
"local_week". This truncates to the locale's notion of the first day of the
week, rather than always truncating to Monday. Patch by Christian Hansen.
1.04 2013-12-07
- Calling set_locale() or set_formatter() on an object with an ambiguous local
time could change the underlying UTC time for that object. Reported by Marta
Cuaresma Saturio. RT #90583.
1.03 2013-04-17
- The set_time_zone() method was not returning the object when called with a
name that matched the current zone. Reported by Noel Maddy. RT #84699.
1.02 2013-04-15
- When a constructor method like new() or today() was called on an object,
you'd get an error message like 'Can't locate object method
"_normalize_nanoseconds" via package "2013-04-15T00:00:00"'. This has been
fixed to provide a sane error message. Patch by Doug Bell.
- When set_time_zone() is called with a name that matches the current time
zone, DateTime now short circuits and avoids a lot of work. Patch by Mark
Stosberg.
1.01 2013-04-01
- Fixed test failures on older Perls.
1.00 2013-03-31
- Bumped the version to 1.00. This is mostly because my prior use of both X.YY
and X.YYYY versions causes trouble for some packaging systems. Plus after 10
years it's probably ready to be called 1.00. Requested by Adam. RT #82800.
- The %j specifier for strftime was not zero-padding 1 and 2 digit
numbers. Fixed by Christian Hansen. RT #84310.
- The truncate method was sloppy about validating its "to" parameter, so you
could pass things like "years" or "month whatever anything goes". The method
would accept the parameter but then not actually truncate the object. RT
#84229.
- Previously, if a call to $dt->set_time_zone() failed it would still change
the time zone of the object, leaving it in a broken state. Reported by Bill
Moseley. RT #83940.
- DateTime::Infinite objects should no longer die when methods that require a
locale are called. Instead, these methods return undef for names and
Inf/-Inf for numbers. This affects methods such as day_name() as well as
CLDR and strftime formats. When a locale-specific format is used (like the
"full" datetime format) it uses the en_US format. Reported by Paul
Boldra. RT #67550.
0.78 2012-11-16
- Reverted the change to round nanoseconds up or down in various
situtations. Now we always round down. This avoids the case where rounding
up would require us to then increment the second value (which could then
require us to increment the minute, which could then require us to increment
the hour, which could then ...).
In other words, we don't want to round 2011-12-31T23:59:59.999999 up to
2012-01-01T00:00:00, because that would be insane.
This applies to the return values for ->microsecond, ->millisecond, and the
%N specifier for strftime.
Patch by Martin Hasch. RT #79845.
0.77 2012-09-25
- POD changes that should make the documentation look better, especially on
the web.
0.76 2012-07-01
- The DateTime->subtract method ignored the end_of_month parameter. Patch by
Chris Reinhardt. RT #77844.
0.75 2012-06-11
- The epoch for years 1-999 was broken because Time::Local is "clever". A pox
on all clever APIs, I say! Reported by Christian Hansen. RT #77719.
- Shut up compilation warning from 5.17.x. Reported by Tom Wyant. RT #77490.
0.74 2012-03-22
- Small packaging fix for metacpan's benefit. No need to upgrade.
0.73 2012-03-17
- Change tests to work with Zefram's entirely rebuilt DateTime::TimeZone
distribution, which will replace the current implementation. Patch by
Zefram. RT #75757.
0.72 2012-01-05
- Remove Test::DependentModules from the dep list. This is used by some
author-only tests. Reported by Zefram.
0.71 2012-01-05
- There will be a new leap second on June 30, 2012.
0.70 2011-05-09
- Really fix %N, finally. This was breaking the DateTime::Event::Recurrence
test suite. Patch by Dagfinn Ilmari Mannsåker.
0.69 2011-05-03
- When a DateTime object had nanoseconds == 0, the %N strftime specifier
always returned "0" regardless of the precision requested. Reported by John
Siracusa. RT #67928.
0.68 2011-04-25
- The tests for %N in the last release relied on the vagaries of floating
point math on a 64-bit system. Now the from_epoch() method just uses string
operations to separate the epoch into an integer value and a mantissa. This
avoids floating point insanity. Reported by zefram. RT #67736.
0.67 2011-04-24
- The %N strftime specifier simply truncated nanoseconds, rather than rounding
them. Reported by Michael R. Davis. RT #66744.
- The %U strftime specifier was off by one in years where January 1st was a
Sunday. Patch by Christian Hansen. RT #67631.
- The %W strftime specifier was off by one in years where January 1st was a
Sunday or Monday. Patch by Christian Hansen. RT #67631.
- Some small optimizations from Christian Hansen. The biggest impact is for
calculating week_of_month, week_number, and week_year.
- This distro now requires Perl 5.8.1+ (it implicitly did this anyway now that
Params::Validate is 5.8.1+).
0.66 2010-11-26
- A bunch of documentation cleanup. No code changes.
0.65 2010-10-25
- Actually put the right $VERSION in every package. No other changes.
0.64 2010-10-25
* All the constructors besides new() ended up calling new(), which meant that
these constructors went through the parameter validation code
twice. Avoiding this should make everything that constructs a new object
(besides new() itself) a little faster.
** This change breaks DateTime::Fiscal::Retail454, but no other modules, to
the best of my knowledge. **
- The t/39no-so.t test failed for some people. I can't reproduce it, but this
release will hopefully fix the problem. Patch by Tokuhiro Matsuno. RT
#62061.
- Added a section on the DateTime Project ecosystem to the docs. Addresses RT
#60930.
- Fixed wiki links in the docs now that the wiki has moved to a new wiki
platform.
- Restored some of the dzil-ification. The repo now has a very minimal
Build.PL file which is just enough to build the XS code and run the
tests. This fixes the total lack of prereqs in the META.* files. Reported by
Bjørn-Olav. RT #62427.
0.63 2010-09-24
- Actually bump the version in the module files. Oops. Reported by bricas.
0.62 2010-09-23
- Don't try to test with DateTime::Format::Strptime unless we have a
relatively recent version. Should fix some test failures.
0.61 2010-07-16
- Switching to dzil in 0.56 broke the --pp flag for the Build.PL. Reported by
Jonathan Noack. RT #59421.
0.60 2010-07-03
- By default, Dist::Zilla generates a Build.PL that requires Module::Build
0.3601+, but this distro really doesn't need any particular version.
0.59 2010-06-29
- More packaging fixes. This release makes sure that POD only shows up in the
right files. In 0.56 through 0.58, some POD in the wrong place confused the
search.cpan.org POD display code, and the main module's documentation wasn't
viewable.
0.58 2010-06-28
- Versions 0.56 and 0.57 did not build XS properly when installing.
0.57 2010-06-26
- Make DateTime::LeapSecond have the same $VERSION as every other .pm file.
0.56 2010-06-26
- The set_formatter() method did not return the DateTime object, and did not
actually validate the value provided for the formatter. Based on a patch by
Andrew Whatson. RT #58506.
- Improved docs on floating time zone. Based on suggestions by Michael
Svoboda. RT #56389.
- Added mention of end-of-month algorithms to docs on DateTime math. Based on
a patch by Michael R. Davis. RT #58533.
- License is now Artistic 2.0.
0.55 2010-03-16
- Get all tests passing on 5.6.2. Thanks to Zefram for help spotting the
problems.
- Moved code to my hg repo at http://hg.urth.org/hg/DateTime.pm.
0.54 2010-03-14
- Bumped the DateTime::TimeZone prereq to 1.09 to force people to use a modern
version. Previously the minimum version was 0.59, and there have been a lot
of bug fixes since then.
- String overloading now extends to string comparison, so a DateTime object
can be compared to any string. In other words
if ( $dt eq $string ) { ... }
will simply stringify $dt and then do a normal string-is-equals
check. Previously, this would blow up unless both operands were a DateTime
object.
Note that future versions of Test::More (0.95_01+) will no longer stringify
arguments to is(), which means that older versions of DateTime may cause new
test failures when you upgrade Test::More. It is highly recommended that you
upgrade DateTime before upgrading to Test::More 0.95_01+.
Patch by Michael Schwern. RT #55453.
- Allow passing end_of_month setting to $duration->inverse(). Requested by
John Siracusa. RT #53985.
0.53 2009-12-06
- Added Test::Exception to build_requires.
0.52 2009-12-05
- Numeric to ->new() are now all validated to make sure they are
integers. Previously, things like "month => 11.2" would have been
allowed. Based on a bug report from Max Kanat-Alexandar. RT #45767.
- Added a warning to the docs suggesting that you cache the locale time zone
if you need to make many DateTime objects in the local zone. Looking up the
local zone can be fairly expensive. RT #46753.
0.51 2009-11-01
- Switched to Module::Build. To force a non-XS build, start the build
process with "perl Build.PL --pp".
- POD-related tests are only run for the maintainer now.
- Fixed handling of negative years in CLDR formatting for "y" and "u"
patterns. Note that the LDML spec says nothing about how this should work,
so I took my best guess.
0.50 2009-05-11
- Tests were failing on Win32 because they attempted to use a negative
epoch. Fixed so that these tests are skipped. Fixes RT #45966.
0.49 2009-05-04
- A bug in the test code for handling overloaded objects in from_epoch
resulted in a test failure on Perl 5.8.x. This release contains no
changes besides a test code fix.
0.48 2009-05-04
- Some of the accessors (the "main" ones like year(), month(), day(),
etc) now warn if they are passed a value. Patch from Shawn
Moore. Fixes RT #6979.
- DateTime::Duration expected DateTime to be loaded and used some
constants from it, but did not explicitly "use DateTime". Reported
by Jeff Kubina. RT #44740.
- The CLDR formatting for "c" and "cc" was incorrectly using the local
day of the week. This meant that it gave the wrong result for
locales where Monday is not considered the first day of the
week. Reported by Maros Kollar. RT #45007.
- DateTime->from_epoch did not allow an object which overloaded
numification as the epoch value. Patch by Michael Schwern. RT
#45653.
- Fixed how datetime subtraction is handled for some cases around DST
changes. This had been improved back in 0.30, but there were still
bugs. RT #45235.
0.47 2009-03-01
- The handling of CLDR format 'j' and 'jj' was backwards, using 24
hour time for locales that wanted 12 hour, and vice versa. Reported
by Maros Kollar.
- The CLDR formatting was missing support for lower-case "q"
patterns. Reported by Maros Kollar.
0.46 2009-02-28
- Added a duration_class method for the benefit of DateTime.pm
subclasses. Patch by Shawn Moore.
0.4501 2008-11-25
- The epoch() method got broken in the recent shuffling between
Time::Local and Time::y2038. Unfortunately, the tests to catch this
also got lost in the shuffle. Reported by Avianna Chao.
0.45 2008-11-11
- Reverted the changes to use Time::y2038, on the recommendation of
Michael Schwern (the author of said module), because it is not yet
stable. This may come back in a future release.
0.4401 2008-11-03
- In order to handle epochs > 2**32 properly on a 32-bit machine, we
also need to import gmtime from Time::y2038. This changes fixes a
whole bunch of test failures seen with 0.44.
0.44 2008-11-01
- XS-capable DateTime.pm now uses Time::y2038 instead of
Time::Local. This lets it handle epochs up to 142 million years
before and after the Unix epoch.
- Fixed a compiler warning with Perl 5.10.0.
- Fixed docs for year_with_era, which had AD and BC
backwards. Reported by Vynce Montgomery. RT #39923.
- The format_cldr() method did not format the "yy" format properly
when the year ended in "0X". Reported by Wilson Santos. RT #40555.
0.4305 2008-10-03
- The pure Perl version of this module did not know about the end of
2008 leap second. Reported by James T Monty.
0.4304 2008-07-13
- Fix test failures when tests are run with DateTime::Locale
0.41. Reported by David Cantrell via CPAN Testers.
0.4303 2008-07-12
- There is a new leap second coming at the end of 2008.
0.4302 2008-05-20
[ BUG FIXES ]
- The 41cldr_format.t test blew up on Perl 5.6.x, because of a bug in
the test code.
0.4301 2008-05-18
[ BUG FIXES ]
- In the 0.43 release, I forgot to change the DateTime::Locale
dependency to require DT::Locale 0.40.
0.43 2008-05-18
[ *** BACKWARDS INCOMPATIBILITIES *** ]
* Dropped support for Perl 5.005.
[ ENHANCEMENTS ]
- Added support for formatting the CLDR date pattern language, which
is much more powerful than strftime. This, combined with the latest
DateTime::Locale, makes the localized output much more correct.
[ BUG FIXES ]
- The hour_1() method was returning the real hour + 1, rather than
just representing midnight as 24 instead of 0. This bug fix will
probably break someone's code.
0.42 2008-02-29
[ BUG FIXES ]
- The 17set_return.t tests failed on leap days, like today. Reported
by Duncan Ferguson. RT #33695.
0.41 2007-09-10
[ BUG FIXES ]
- The 13strftime.t test was failing when DateTime::Locale 0.35 was
installed. The test has been adjusted and we now list DT::Locale
0.35 as the minimum version. Reported by David Cantrell.
0.40 2007-08-30
[ BUG FIXES ]
- A custom formatter would be lost after a call to set() or
truncate(). Reported by Kjell-Magne Øierud. RT #28728.
- The truncate() method docs said it accepted "second" as a parameter,
but it didn't actually do the right thing with it. Now it always
truncates nanoseconds to 0 for any parameter it is passed.
0.39 2007-07-17
[ BUG FIXES ]
- Yet more changes to how infinity is handled and tested. This passes
for me on 32-bit Win XP and 64-bit Linux, which is promising. Patch
by Yitzchak Scott-Thoennes. RT #22392.
0.38 2007-06-30
[ BUG FIXES ]
- Require Test::Pod::Coverage 1.08 in pod-coverage.t, since we use
all_modules, which was only exported as of version 1.08. Reported by
MATSUNO Tokuhiro. Fixes RT #26594.
- Fixed a bad link to the old FAQ location in the docs. Reported by
Ric Signes. Fixes RT #26846.
[ ENHANCEMENTS ]
- DateTime.pm now explicitly overloads string comparison. This was
done so that comparing a DateTime.pm object to a string returns
false, rather than throwing an exception. Reported by Chris
Dolan. Addresses RT #26085.
0.37 2007-03-30
[ BUG FIXES ]
- Require DateTime::Locale 0.34, which fixes a problem that manifested
when thawing a DateTime.pm object. See
http://www.mail-archive.com/[email protected]/msg05633.html for some
discussion of this.
- Added pod coverage tests, and added some POD for undocumented
methods as a result.
[ ENHANCEMENTS ]
- This distro is now GPG-signed, per RT #24776.
0.36 2007-01-18
[ BUG FIXES ]
- For infinity, use 100 ** 1000 instead of 100 ** 100 ** 100. This may
fix the problems with infinity on some platforms (or may
not). Suggested by Bjorn Tackmann. See RT #17390, #19626, and
#22392.
- Require DateTime::TimeZone 0.59, which includes a similar fix.
0.35 2006-10-22
[ ENHANCEMENTS ]
- Added several new methods for getting locale-based data, era_abbr(),
era_name(), quarter_abbr(), and quarter_name(). The era() method
returns the same data as era_abbr(), but is deprecated.
0.34 2006-08-11
[ BUG FIXES ]
- DateTime's code to fall back to the pure Perl implementation was
broken in most cases, making it fairly useless. Reported by Adam
Kennedy and Brendan Gibson.
- Under Perl 5.6.2 (and presumably 5.6.x), some of the tests
mysteriously failed. I tracked this down to a weird interaction
between DateTime's string overloading and
Test::Builder->cmp_ok(). See RT 19626.
0.33 2006-08-09 (the "Asia/Kaohsiung" release)
[ ENHANCEMENTS ]
- Attempting to do an overloaded operation (add, subtract, compare)
with an inappropriate argument (like $dt + 1) gives a more useful
error message.
[ BUG FIXES ]
- The fixes in 0.30 for subtract_datetime() crossing a DST change had
a bug. When subtracting two dates, both occurring on a DST change
date, but where the dates did not cross the change, the answer was
off by an hour. Reported by Chris Prather. See RT 20697.
- Borrowed a tweak from version.pm's Makefile.PL to make compiler
detection work with MSVC.
0.32 2006-07-24
[ BUG FIXES ]
- Change how C compiler detection is done in the Makefile.PL so it
does not rely on having make on the system. The new way should work
on (most?) Unix and Win32 systems. Suggested by David Golden. See RT
18969.
0.31 2006-05-21
[ ENHANCEMENTS ]
- Switched some uses of die() to Carp::croak(), where
appropriate. This should make error messages more useful in many
cases. Based on a suggestion by Max Maischein. See RT tickets 11692
& 18728.
[ BUG FIXES ]
- Removed all uses of UNIVERSAL::isa and UNIVERSAL::can as functions.
- Tweaked 20infinite.t test to give more useful output for some
failures, though it probably doesn't fix them. See RT 17390.
0.30 2005-12-22
[ ENHANCEMENTS ]
- Expanded and rewrote the docs on date math to try to explain exactly
how DateTime.pm works, and in particular cover the problems DST
introduces to various types of date math. The docs now also include
some specific recommendations on getting sane results from datetime
math.
- Added calendar_duration() and clock_duration() methods to
DateTime::Duration
- Explicitly override the stringification method for
DateTime::Infinite objects. They now stringify as whatever the IEEE
infinity and negative infinity numbers stringify to on your
platform. On Linux this is "inf" and "-inf". CPAN RT #16632.
[ BUG FIXES ]
- delta_md() and delta_days() did not always return correct values
when crossing a DST change.
- The pure Perl version of the code had a dependency ordering problem
where DateTime::LeapSecond depended on other pure Perl code that
wasn't yet available. I'm not sure how this ever worked.
- Remove mentions of leap second on 1971-12-31 from the docs, because
there was no leap second that day. Reported by Mike Schilli.
- If you added a second to a datetime that was on a leap second (like
2005-12-31T23:59:60) it got "stuck" and kept returning the same
datetime. Reported by Mike Schilli.
- Changes to the tests in 20infinite.t may fix failures seen on some
platforms and with new versions of Test::More (0.62 was known to
cause failures)
[ *** BACKWARDS INCOMPATIBILITIES *** ]
- The subtract_datetime() method switched back to using the local
portion of the date _and_ time, but it now accounts for days with
DST changes specially. This produces results that fix the bugs that
were fixed by previous subtraction changes in 0.28 and 0.29, but
without introducing even more bugs. The overall result should be
sane, but please see the docs for details.
0.2901 2005-07-04
- A leap second for the end of 2005 was announced.
0.29 2005-06-03
[ *** BACKWARDS INCOMPATIBILITIES *** ]
- When adding/subtracting a duration with months or days that crossed
a DST change, the result was based on the local time, not the UTC
time. For consistent results, it is necessary to use the UTC time
(but local date) for all date math. Reported by J. Alexander
Docauer.