First off, try zapping the PRAM (skip to the next paragraph if you're familiar with it). This erases the memory that stores certain control panel settings, including date and time. It can become corrupt, and this sometimes fixes it. Do it by restarting and holding down command-option-P-R. Release the buttons after you hear the second startup chime.
If the problem persists after that, the lithium backup battery on the logic board might be dead, so you'd have to get it replaced.