whence
It parses the dates people actually type. "next tuesday". "in 3 weeks". "end of the month". "18/03" with no year, from a user whose locale you are only guessing at. Seven years of getting that wrong in public, written down in order, because the interesting part of a date library is never the parsing. It is the corrections.
Why This Page Is A Timeline
Most of what you need to know about a date library is historical. Which version silently changed how it resolves an ambiguous day. Which one broke across a DST boundary and only in the southern hemisphere. Which one you are pinned to and why somebody on your team wrote "do not upgrade" next to it in 2023. Feature lists cannot tell you that. A list of dated mistakes can.
The Two That Actually Cost Something
Everything above was embarrassing. The two entries below were worse than that, because they reached people who were not developers and had no idea a library was involved. Both are described here at more length than is comfortable. A changelog that quietly drops its worst day is a changelog that has learned nothing and is teaching nobody.
Releases
61
Releases that changed behaviour without saying so
3
Longest a known bug stayed live
11 days
Timezones in CI
14
Distinct people who have reported a real bug
88
"Your tests pass because they all run north of the equator. Mine is the half of the world where the clock goes the other way.
"from the Auckland bug report on issue 402
What Changed In How We Work
None of the fixes above were the real fix. The real fixes were structural and there are three: locale is a required argument rather than a guess, the test suite runs in fourteen timezones on every commit rather than in the maintainer's own, and ambiguous input returns a range instead of a confident wrong answer. Every one of those was forced by a bug that had already shipped.
If you are upgrading
Read the entry for every version between yours and the target. All of them
Pin exactly. Caret ranges on a date library are how the 2022 DST bug spread
If you are on v2, the v3 range return is the only breaking change that matters
Run your own suite in at least two timezones before you believe any of this
If you find something, the Auckland report is the template. It is linked below

