3.0.0 - 2023-12-16
Changed
- Relaxed dependency constraints. #760
- The testing helpers are now optional and must be opted-in via the
test
extra. #778
Fixed
- Removed remaining mentions of periods instead of intervals. #757
- Fixed the behavior of the
week_of_month
property for edge cases in January and December. #774
- Fixed the handling of the
fold
attribute when deep-copying a DateTime
instance. #776
- Fixed errors where hours and days were not handled properly when adding durations. #775
- Fixed errors where hours and days were not handled properly when adding durations. #775
Added
- Made
instance()
support all native types (date, time, datetime). #732
Changed
- Dropped support for Python 3.7. #734
- Rewrote extensions in Rust. #721
- Made day of week convention more consistent across the codebase. #731
Fixed
- Fixed datetime string representation to match the native library. #733
- Fixed issues on some system when retrieving the local timezone. #733
- Fixed DST handling in
start_of()/end_of()
methods. #713
Added
- Added new testing helpers to time travel. #626
Changed
- Dropped support for Python 2.7, 3.5 and 3.6. #569
- The
Timezone
class now relies on the native zoneinfo.ZoneInfo
class. #569
- Renamed the
Period
class to Interval
. #676
- Renamed the
period
helper to interval
. #676
- Removed existing testing helpers:
test()
and set_test_now()
. #626
Locales
- Added the
sk
locale. #575
- Added the
ja
locale. #610
- Added the
he
locale. #585
- Added the
sv
locale. #562
2.1.1 - 2020-07-13
Fixed
- Fixed errors where invalid timezones were matched in
from_format()
(#374).
- Fixed errors when subtracting negative timedeltas (#419).
- Fixed errors in total units computation for durations with years and months (#482).
- Fixed an error where the
fold
attribute was overridden when using replace()
(#414).
- Fixed an error where
now()
was not returning the correct result on DST transitions (#483).
- Fixed inconsistent typing annotation for the
parse()
function (#452).
Locales
- Added the
pl
locale (#459).
2.1.0 - 2020-03-07
Added
- Added better typing and PEP-561 compliance (#320).
- Added the
is_anniversary()
method as an alias of is_birthday()
(#298).
Changed
- Dropped support for Python 3.4.
is_utc()
will now return True
for any datetime with an offset of 0, similar to the behavior in the 1.*
versions (#295)
Duration.in_words()
will now return 0 milliseconds
for empty durations.
Fixed
- Fixed various issues with timezone transitions for some edge cases (#321, (#350)).
- Fixed out of bound detection for
nth_of("month")
(#357).
- Fixed an error where extra text was accepted in
from_format()
(#372).
- Fixed a recursion error when adding time to a
DateTime
with a fixed timezone (#431).
- Fixed errors where
Period
instances were not properly compared to other classes, especially timedelta
instances (#427).
- Fixed deprecation warnings due to internal regexps (#427).
- Fixed an error where the
test()
helper would not unset the test instance when an exception was raised (#445).
- Fixed an error where the
week_of_month
attribute was not returning the correct value (#446).
- Fixed an error in the way the
Z
ISO-8601 UTC designator was not parsed as UTC (#448).
Locales
- Added the
nl
locale.
- Added the
it
locale.
- Added the
id
locale.
- Added the
nb
locale.
- Added the
nn
locale.
2.0.5 - 2019-07-03
Fixed
- Fixed ISO week dates not being parsed properly in
from_format()
.
- Fixed loading of some timezones with empty posix spec.
- Fixed deprecation warnings.
Locales
2.0.4 - 2018-10-30
Fixed
- Fixed
from_format()
not recognizing input strings when the specified pattern had escaped elements.
- Fixed missing
x
token for string formatting.
- Fixed reading timezone files.
- Added support for parsing padded 2-digit days of the month with
from_format()
- Fixed
from_format()
trying to parse escaped tokens.
- Fixed the
z
token timezone parsing in from_format()
to allow underscores.
- Fixed C extensions build errors.
- Fixed
age
calculation for future dates.
2.0.3 - 2018-07-30
Fixed
- Fixed handling of
pytz
timezones.
- Fixed some formatter's tokens handling.
- Fixed errors on some systems when retrieving timezone from localtime files.
- Fixed
diff
methods.
- Fixed
closest()/farthest()
methods.
2.0.2 - 2018-05-29
Fixed
- Fixed the
weeks
property for negative Period
instances.
- Fixed
start_of()
methods not setting microseconds to 0.
- Fixed errors on some systems when retrieving timezone from clock files.
- Fixed parsing of partial time.
- Fixed parsing not raising an error for week 53 for ordinary years.
- Fixed string formatting not supporting
strftime
format.
2.0.1 - 2018-05-10
Fixed
- Fixed behavior of the
YY
token in from_format()
.
- Fixed errors on some systems when retrieving timezone from clock files.
2.0.0 - 2018-05-08
Added
- Added years and months support to durations.
- Added the
test_local_timezone()
and set_local_timezone()
helpers to ease testing.
- Added support of ISO 8601 duration parsing.
- Added support of ISO 8601 interval parsing.
- Added a
local()
helper.
- Added a
naive()
helper and a naive()
method.
- Added support for POSIX specification to extend timezones DST transitions.
Changed
Pendulum
class has been renamed to DateTime
.
Interval
class has been renamed to Duration
.
- Changed and improved the timezone system.
- Removed the
create()
helper.
- Removed the
utcnow()
helper.
strict
keyword argument for parse
has been renamed to exact
.
at()
now supports setting partial time.
local
, utc
and is_dst
are now methods rather than properties (is_local()
, is_utc()
, is_dst()
).
- Changed the
repr
of most common objects.
- Made the
strict
keyword argument for parse
false by default, which means it will not fallback on the dateutil
parser.
- Improved performances of the
precise_diff()
helper.
- The
alternative
formatter is now the default one.
set_to_string_format()/reset_to_string_format()
methods have been removed.
from_format()
now uses the alternative formatter tokens.
- Removed
xrange()
method of the Period
class and made range()
a generator.
- New locale system which uses CLDR data for most of the translations.
diff_for_humans()
now returns a few seconds
where appropriate.
- Removed
Period.intersect()
.