Yes, there is -- you need to sync your system time with the external time servers. A high-end solution is to run ntp, a simpler solution is to just call ntpclient, or ntpdate.
Watch out that because too many Linux machines were hitting the same time servers, there are now some per-distro wrappers. E.g. on an Ubuntu machine here I have this in /etc/crontab:
03,23,43 * * * * root ntpdate-debian -s
where ntpdate-debian has this in its manual page:
ntpdate-debian is identical to ntpdate(8) except that it uses the
configuration in /etc/default/ntpdate by default. ntpdate sets the
local date and time by polling Network Time Protocol (NTP) servers.
and then in /etc/default/ntpdate we see
# List of NTP servers to use (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ntp.ubuntu.com"
which points to the Ubuntu pool.