Date value differences before and after an upgrade (8.1.5 -> 9.0)

Hi,

I've recently done an upgrade from 8.1.5 to version 9.0 to a client project.

All went well in general and today the internal team's regression testing found out something really weird.

As an example, we take the ExitDate@Person column.

This attribute is populated from an HR source with a Date value (no time), then is propagated to other OOTB columns like DateLastWorked@Person and AccountExpires@ADSAccount.

Now, prior to upgrade an example would look like below and as you can see display and Db values were matching which should not be the case as the environment's TimeZone is on UTC+1

HR date: 8/31/2024

ExitDate display value on Manager: 8/31/2024 12:00 AM

ExitDate display value when opening properties in Manager for an object: 8/31/2024

ExitDate DB value: 8/31/2024 12:00 AM -> Should have been 8/30/2024 11:00 AM (?)



After the upgrade, we can see something different, meaning the display and database values are not matching (and this is intended behavior as per documentation):

HR date: 8/31/2024

ExitDate display value on Manager: 8/31/2024 12:00 AM (UTC+1)

ExitDate display value when opening properties in Manager for an object: 8/31/2024 12:00 AM

ExitDate DB value: 8/30/2024 11:00 AM (UTC+0)

No template code or sync project has been altered before and after and no further calculations take place, the HR date value is just parse as-is to the ExitDate.

Various tests were taken with different data and the behavior is consistent in the new version.

Apparently, if they now change and then save older data where the display and db values were matching, now the difference is there between those two.


Apparently, this has created some concerns to the internal team that the upgrade "broke" things and especially OOTB stuff.

Thing is, why in the previous version the DB value seems that it was not stored in UTC but rather in local TimeZone UTC+1?
Is there any reasoning behind? Has anyone ever encountered anything similar?