Solution 1:

You don't want to run NTP or NTPDATE on a virtual machine. It should get its time from the system clock.

Check the UTC value in /etc/default/rcS. Try setting it from no to yes or vice-versa.

While you are at it add an exit 0 line to /etc/default/ntp. Alternatively set the NTPOPTION value to "-q". This will disable NTP on the virtual server.

Solution 2:

Have you tried using an NTP server that is on the same Time Zone as you?

Does # /etc/init.d/ntp restart give you the same issue of your hardware clock changing?