Calendar-based stuff is absurdly difficult to get right. Even if you have something that seems to work you likely have a hidden error somewhere. That's not really an excuse -- edge conditions like DST on/off, and end-of-year should be first on your test list. But calendars suck to work with.
Programming is hard. Likely they didn't have a test for every possible date.
It seems likely that the fact that this is the 1st of the year is related. This should be an obvious edge condition for testing.
Seems like calendars and time are really hard to get right.
The missing December on Android is a good example of that too.
if you're writing tests, you should aim for corner cases. for date-based applications that would include the first and last days in the year, leap years, etc.
programming can be a bit less hard if you learn to do it right.
Good luck enumerating all the edge-case tests for date functions every single time you need a date.