To determine the current time for some planet region, a computer needs exactly this two informations:
Correct UTC (universal time as in Greenwich, but not GMT) time
Region's current Time Zone
For computers, there is also the hardware clock, which is used as a base by the OS to set its time.
OS date and time (we'll use only date or time from now on) is set on boot, by some script that reads the hardware clock, makes Time Zone calculations (there is no time zone data stored in BIOS) and sets the OS. After this synchronization, BIOS and OS time are independent from each other. So after a while they may have some seconds of difference. Which one is correct? If you don't make special configurations, none of them.
We'll discuss here how to make them both globally 100% accurate.