Recently working under daylight savings I realized that my Windows XP Guest OS was incorrectly displaying the date and time. Windows XP was working with one hour less than the hour set on my Host OS. Although this seems to be a small problem, it was giving me headaches. I am using Windows XP to perform some of my work. MS Outlook to read my emails (don’t ask, company’s policies; exchange server + corporate VPN). So you may imagine how many conference calls I lost or joined later due to this problem.
Anyway let’s go to what matters most, the fix. After trying all the possible configurations over the Windows XP, realized that such configuration is taken directly from the Virtual BIOS; set by the VirtualBox itself. So despite all the configuration efforts, Virtualbox Guest Additions (probably) was updating the time according to the one defined on my Host OS. But instead of setting to the same value, the value set by the VirtualBox was one hour less the actual hour. Side note: I don’t know if this problem came with the update to the last Virtualbox release or this was due to the daylight savings. In either case the problem was happening and I had to fix.
So looking for the answer, how to change the Virtual BIOS to the correct value, I found the command / tool:
VBoxManage modifyvm Windows –biossystemtimeoffset <msec offset>
This command allows you to modify the Virtual Box BIOS system time using the millisecond offset. In other words, you can add or subtract the actual time and date value by an hour, second or millisecond.
So considering my situation, I issued the following command:
VBoxManage modifyvm Windows –biossystemtimeoffset 3600000
Problem solved! Now both Guest and Host OS are displaying the same time.
Please notice that once the daylight savings is finished, you may need to reset this configuration to the default. In order to do so, you may use the following command:
VBoxManage modifyvm Windows –biossystemtimeoffset 0