I worked on a 2k20 bug just last week. Some of the Perl at work started returning strange values, and tests were failing. Turns out we were using `Time::Local`'s `timelocal/timegm` subs. They use convoluted interpretation of 2-digit years – which we were, of course, passing (and for no good reason):<p>• <a href="https://metacpan.org/pod/Time::Local#Year-Value-Interpretation" rel="nofollow">https://metacpan.org/pod/Time::Local#Year-Value-Interpretati...</a><p>> <i>Years in the range 0..99 are interpreted as shorthand for years in the rolling "current century," defined as 50 years on either side of the current year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045, but 55 would refer to 1955. Twenty years from now, 55 would instead refer to 2055. This is messy, but matches the way people currently think about two digit dates</i><p>• <a href="http://blogs.perl.org/users/tom_wyant/2020/01/my-y2020-bug.html" rel="nofollow">http://blogs.perl.org/users/tom_wyant/2020/01/my-y2020-bug.h...</a>