The Hyper-V Time Synchronization Service will not correct the system clock in the virtual machine (VM), if the system clock in the VM is running more than 5 seconds ahead of the system clock on the host machine.
This is by design and was implemented after reports of issues with applications when the Hyper-V Time Synchronization Service adjusted the time.
If the system clock in the VM is ahead of the host for no more than 5 seconds, the Hyper-V Time Synchronization Service will adjust the system clock in the virtual machine. However, if the system clock in the VM is ahead for more than 5 seconds, the Hyper-V Time Synchronization Service will NOT adjust the system clock and there is no way to achieve time adjustment by changing integration service setting.
There is no flag/property/setting that you can set to work around the timesync logic. However, below are a few workarounds which you may try to sync the time:
1. Pause and Resume the Virtual Machine.
2. Power OFF and Power ON the Virtual Machine.
3. Disable and Enable the Time Synchronization option in the virtual machine settings (via the Hyper-V Manager console).
4. Disable the Hyper-V Time Synchronization option, then use another time sync source and configure the PhaseCorrectRate, MaxPollInterval, MinPollInterval and UpdateInterval values appropriately to get the Time Sync more closely. MaxpollInterval and MinPollInterval are the minimum and maximum interval between the polls respectively. The value in each is a time in log2 seconds (ie. 2^n, so if you specify 5 then the actual time would be 2^5 = 32 seconds). The default value for domain controllers for each of them respectively is 6 (64 seconds) and 10 (1024 seconds).