date sets the system clock, i.e. the clock maintained internally by the operating system. There is a separate clock inside the computer which keeps the time when the computer is off (or rebooting). If you've set the system clock manually, call
hwclock to set the hardware clock as well.
hwclock --utc --systohc
--localtime if your hardware clock is set to local time. This should only be done if you dual boot with Windows.)
Some distributions have a script that calls
hwclock with the right options (
--localtime, and if relevant other hardware-specific options). For example, on Debian, run
/etc/init.d/hwclock.sh stop. I don't know about CentOS.
All of this is for a one-time thing. If your computer has a permanent or frequent Internet connection, once you've set the time approximately right manually, make it synchronize its time over the network, using NTP. See cjc's answer.