I have a remote server that is located about two countries away from my location. That means, that the server is set up to -1 hour in comparison to my time zone. And I need it to work on my local time zone. I don't have access to bios or anything like that, so what I am doing, is manually setting up date and time in control panel. It works fine, until the computer resets, then it's back to -1 hour again. It messes up my applications totally, and it cannot be that way. Is there anything I can do about it?
The clock is being set to the correct time automatically. Do not try to set the time, as it will just be reset to the correct time again.
Adjust the Time Zone, if necessary, to the time you want to appear to be localtime.
Note: Windows does not keep track of time in localtime, your application might (especially older and poorly written "enterprise" applications), but Windows does not. Windows keeps time in UTC, along with every other well written application.
Forcing the clock to update will help determine if you are setting the timezone correctly to display the localtime you want to see. If the time displays incorrectly you've got the wrong timezone selected. Update the clock by:
net time /set /y
For Virtual Machines: make sure the guest-host clock synchronization is enabled. The host should be configured to update it's time automatically (essentially the same as above). The guest should have it's own time synchronization services disabled.
Note: Some virtualization platforms have been known to cause problems when guest-host time synchronization is enabled. The vast majority of these issues have been resolved with modern versions of the respective software.
Time synchronization protocols all work in UTC, not localtime. So you can synchronize with any good time source and get the correct time. Using a time source nearby will get more accurate time, but if accuracy of a few seconds is acceptable then most any time source will work.