Most likely not the battry. If so you would get other symptoms like it may forget the HD
Most likely a flakey clock chip.
I would put a time set program in startup and forget it. Depending on the motherboard it might take a whole new MB to fix it. It will not effect anything else.
As for the time setter, get one that sets the time and terminates and does not stay in memory.
XP and 2K can be told to set their on time thu a time server so look into that if you want.
Or if you don't know how get back to us.