Timezones can be a very tricky subject.
Did you check the “localized” option for datatime attributes? It must be set to no if you want to disregard timezone-differences.
Here's a good read about the subject, although it always gives me a headache. https://docs.mendix.com/refguide/datetime-handling-faq
Note that timezones are never stored in the database. All the date times in the database are UTC. If you set the boolean localize to yes it will depending on the timezone of the user represent that UTC date time to timezone of the user.
Example localize is set to yes
It is now the 9th of april 0100 hours in the amsterdam time zone. Currently we are two hours ahead so the UTC date time will be 8th of april 2300 hours and that is what is stored in the database. Hence the date switch.
Example localize is set to no
It is now the 9th of april 0100 hours but on screen it will show the UTC date so it would show as the 8th of april 2300 hours and is the same value as stored in the database.
Again try really to comprehend the datetime handling FAQ. Good for the brains :)