Ran into this type of thing last year. Definitely a weird one to debug by looking at things, but easy to figure out when you print out the dates or read documentation.
I get how the year went forward at the end of the previous year in your example, but how in the world in this post's article did it move back? I'm so confused.
I think that's the date parser's behavior in Swift (if no additional information is given in the input string, revert to the first day of the week before the first week of the year). The article I linked to displays what the formatter does.