I tested your code in an app.
I get a correct 2021 date as shown below:
But you're right, when I select a date, I get a different year (and month)
I did the same test with Xcode 12 / iOS 14.4 and got the same problem. So it is not an iOS 15 bug.
I removed
datePicker.calendar = Calendar(identifier: .chinese)
And it worked well.
It is not a bug. The reason is that chinese calendar is sexagenary based. If you don't specify era, you get a value between 1 and 60 ! So, setting calendar to .chinese make you display dates (as at top left of the view) in the current era.
Read this:
https://stackoverflow.com/questions/60936744/how-to-convert-gregorian-dates-to-chinese-not-sexagenary-cycle-in-swift
"What is the Month and Day of Chinese New Year for a Gregorian year?". In my journey I learned that the Chinese calendar follows the sexagenary cycle of 60year eras. Era is an important concept because you need to use it to get to the right Gregorian year. Not specifying the an Era on the Chinese calendar will return a Month and Day in the current Era which began in 1984.