ntpdate will run when an ethernet interface is brought up, and set the time from an ntp server (see /etc/default/ntpdate).If ntpd is running, ntpdate will do nothing, however ntpdate will run prior to ntpd at bootup - so this should work out to set the time at bootup as long as there's an ethernet connection.
Update Sorry for the bum steer guys, this machine is a Xen Server VM, which I managed to forget. This is called slewing, you can read about it in 'man ntpdate' or RFC 1305.
Generally ntp will slowly adjust the time so when you look at logs things still make sense, and applications don't get messed up.
ntp is used to discipline your clock and will in fact keep the RTC in a short leash updating it every 11 minutes. Ntp will refuse to run if your clock is off by more than a certain amount of time (which isn't very big BTW, so this is a real risk).
If you're going to use ntp (not ntpdate), remember to get rid of that systohc adjust crap in runlevel 6 (/etc/rc6.d, /etc/init.d; I forgot the script name, I think a search for systohc --adjust will find it). ntpdate is used to 'force' the clock to an acceptable value at boot time, and after that you can either leave the RTC alone or use ntp to keep it synced.
If ntpdate determines the clock is in error more than 0.5 second it will simply step the time by calling the system settimeofday() rou‐ tine.
If the error is less than 0.5 seconds, it will slew the time by calling the system adjtime() routine.
application to help me when I was having a similar issue.
It's installed by default and '--help' gives a pretty good and simple overview of how to use the tool.
One disk to bring them all and in the darkness grind them.
After updating the Host clock, the VM time is now correct. "Time adjustments are made by ntpdate in one of two ways.
It updates with both the Wi Fi and the ethernet cable.