3.0.0 - 2023-12-16
- Relaxed dependency constraints. #760
- The testing helpers are now optional and must be opted-in via the
test
extra. #778
- 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 aDateTime
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
3.0.0b1 - 2023-10-01
- Made
instance()
support all native types (date, time, datetime). #732
- Dropped support for Python 3.7. #734
- Rewrote extensions in Rust. #721
- Made day of week convention more consistent across the codebase. #731
- 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
3.0.0a1 - 2022-11-23
- Added new testing helpers to time travel. #626
- Dropped support for Python 2.7, 3.5 and 3.6. #569
- The
Timezone
class now relies on the nativezoneinfo.ZoneInfo
class. #569 - Renamed the
Period
class toInterval
. #676 - Renamed the
period
helper tointerval
. #676 - Removed existing testing helpers:
test()
andset_test_now()
. #626
- 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 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 usingreplace()
(#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).
- Added the
pl
locale (#459).
2.1.0 - 2020-03-07
- Added better typing and PEP-561 compliance (#320).
- Added the
is_anniversary()
method as an alias ofis_birthday()
(#298).
- Dropped support for Python 3.4.
is_utc()
will now returnTrue
for any datetime with an offset of 0, similar to the behavior in the1.*
versions (#295)Duration.in_words()
will now return0 milliseconds
for empty durations.
- 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, especiallytimedelta
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).
- 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 ISO week dates not being parsed properly in
from_format()
. - Fixed loading of some timezones with empty posix spec.
- Fixed deprecation warnings.
- Added RU locale.
2.0.4 - 2018-10-30
- 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 infrom_format()
to allow underscores. - Fixed C extensions build errors.
- Fixed
age
calculation for future dates.
2.0.3 - 2018-07-30
- 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 the
weeks
property for negativePeriod
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 behavior of the
YY
token infrom_format()
. - Fixed errors on some systems when retrieving timezone from clock files.
2.0.0 - 2018-05-08
- Added years and months support to durations.
- Added the
test_local_timezone()
andset_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 anaive()
method. - Added support for POSIX specification to extend timezones DST transitions.
Pendulum
class has been renamed toDateTime
.Interval
class has been renamed toDuration
.- Changed and improved the timezone system.
- Removed the
create()
helper. - Removed the
utcnow()
helper. strict
keyword argument forparse
has been renamed toexact
.at()
now supports setting partial time.local
,utc
andis_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 forparse
false by default, which means it will not fallback on thedateutil
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 thePeriod
class and maderange()
a generator. - New locale system which uses CLDR data for most of the translations.
diff_for_humans()
now returnsa few seconds
where appropriate.- Removed
Period.intersect()
.