The problem is, as BB_DaKraxor mentioned, about timezones.
EDIT: shortening the post a bit..you can read more about timezones and different time representations at Wikipedia for example, to get the grasp. Shortly: there are several ways to display time, and several ways to define time(s). Nowadays UTC is the way to go; used to be GMT (Greenwich Mean Time). But here it goes:
Your machine has a clock that it tries to keep up to the time. It doesn't know what time it is, it just adds seconds, minutes or whatever time units you want to call them, to the time it was originally set to. Your operating system has been coded to understand that instead of having just one time on Earth, this ball is actually divided into timezones, so that everywhere there can be (almost) midday at 12.00. Operating systems try to be smart, and instead of forcing you to set your machine clock to the localtime, they offer you the opportunity to have your machine clock at some universal time, and then calculate your local time depending on your location (adding some amount of hours to the machine clock's time, for example). This is OK as long as every operating system has the same assumption of your machine's clock "format" (if it's local time or not); if one OS thinks it's in local time and another OS thinks it's not, the other OS displays the machine's time as localtime, and the other does some calculations with it and then displays the time it thinks is localtime - and this is why one OS clock displays different time than the other.
Solution: decide if you want your macine's clock to display local time or not (= universal time of some kind, it's your decicion). Then just tell each of your operating systems which time it displays, and there you go..
The point in having your OS calculate your local time from the location you said you live in, and from your machine clock's "universal time", is that you can transfer your machine all around the world (if you like) and just select a new timezone to get the correct time, instead of always changing the machine clock. It also means that if you happen to deal with several timezones (remote stuff or something), a clever software could always show you the right localtime!
But for the average Joe it sometimes just gives the wrong time on some operating systems..