The Pendulum team is pleased to announce the immediate availability of Pendulum 2.1.0.

This release is mostly a bugfix release with some small changes that are not backwards incompatible.

New features

  • Added better typing and PEP-561 compliance (#320).
  • Added the is_anniversary() method as an alias of is_birthday() (#298).


  • 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 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).


  • Added the nl locale.
  • Added the it locale.
  • Added the id locale.
  • Added the nb locale.
  • Added the nn locale.