Java and .NET use different calendars for dates serialization. That results in some dates written using Java API deserialized into different dates using .NET API and vise versa. For example, 1-Jan-1992 00:00:00 MSK written using Java API will be read as 31-Dec-1991 1:00:00 MSK using .NET API.
Java and .NET API must use same calendars for dates serialization.
Java uses IANA Time Zone database (https://www.iana.org/time-zones) stored locally that could be manually updated using Timezone Updater Tool (https://www.oracle.com/technetwork/java/javase/documentation/tzupdater-readme-136440.html)
.NET uses its own calendars that cannot be manually updated.
For all the Java/.NET calendar differences I saw the Java version was valid and .NET version was not.
We need to use IANA time zone database in .NET as well and, if possible, provide a mechanism to update the time zone database