What is the command to update time and date from Internet? Is there any application that allows me to do so from its user interface rather than from the shell?
12 Answers
This is a nice little code I found to update your time in case you have issues with ntp
:
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
-
1
-
11
-
2Works, but I have one problem. The command sets the clock to GMT, not the local time. Any workaround for this? Mar 23, 2018 at 5:46
-
3This is good, but it usually will be between 8 and 50 ms behind since it doesn't synchronize per se. Jul 14, 2018 at 14:54
-
2the solution works, but don't expect accuracy compared to NTP. this approach simple does an HTTP request to google.com and syncs local date. NTP is quite more than that: datatracker.ietf.org/doc/html/rfc5905– logoffAug 18, 2021 at 10:03
You can do so with e.g. sudo ntpdate time.nist.gov
. Other servers include time.windows.com
, etc.
http://www.pool.ntp.org/ lists time servers around the world.
-
6
-
7@friederbluemle As said in this answer, you have to stop ntp service
sudo service ntp stop
. Then you can use the command suggested in the answer and finally you can restart the service withsudo service ntp start
– MicheleSep 7, 2014 at 14:35 -
6I get a "ntpdate[15806]: no server suitable for synchronization found" error. The second answer below using the google.com works better May 4, 2017 at 12:10
-
8
-
6if you want to use
nptdate
, and it's not found, then:sudo apt install ntpdate
; note that it's not installed by default anymore, and may no longer be the preferred solution with latest versions of ubuntu; see help.ubuntu.com/community/UbuntuTime and see also askubuntu.com/questions/254826/… for more options (as well as other answers to this question)– michaelSep 13, 2018 at 19:30
As of 2018 with a fresh installed Ubuntu 16.04 LTS, running sudo ntpdate time.nist.gov
gives:
sudo: ntpdate: command not found
This is because (official source):
ntpdate
is considered deprecated in favour oftimedatectl
and thereby no more installed by default.
Instead do this to force the sync to happen now:
sudo timedatectl set-ntp off
sudo timedatectl set-ntp on
In my case I was running a Ubuntu on a virtualbox and had saved the machine state so when I started the instance back up again it did not automatically sync the clock since there was no boot event to trigger the sync. So the time was still showing what it was the last time I was running the virtual box.
-
1I just upgraded to bionic and noticed that ntpdate wasn't working anymore, and timedatectl worked for me.– kapadJul 6, 2018 at 8:39
-
4
-
1If the time doesn't change, check your timezone with just
timedatectl
. If it's wrong, see the--help
section for the command on how to change it. Aug 22, 2018 at 16:28 -
5Nice catch for the Virtual Box. Saved a lot of debugging headache! Nov 11, 2018 at 23:57
-
1
Running this command in a terminal should do the trick
sudo dpkg-reconfigure tzdata
You can add extra time zones graphically, I think, by clicking on the clock and going through its options.
-
Timezones are not really the same as (accurate) time. But, it also not very clear what Vikramjeet was asking either.– david6Nov 21, 2011 at 22:05
-
What is the command to update time and date from Internet is the question, sudo dpkg-reconfigure tzdata is the answer, so what gives? the comment about the timezones, is related to the only thing i know to be possible graphically– JayoNov 21, 2011 at 22:24
-
I assumed that by graphically they meant a graphical (or 'GUI') method, and NOT geographic (or worldwide).– david6Nov 21, 2011 at 22:55
-
so did i, i am not aware of a way to update the date and time via the net graphically, so i use the terminal, what i do know how to do graphically is set up time zones, the part about time zones was my two cents on what can be done to affect the time in a graphical manner, as far as i knew, am i understood now?– JayoNov 21, 2011 at 23:19
-
It's very easy to set up from command line: https://help.ubuntu.com/lts/serverguide/NTP.html From that link:
Ubuntu comes with ntpdate as standard, and will run it once at boot time to set up your time according to Ubuntu's NTP server:
ntpdate -s ntp.ubuntu.com
Here's GUI example https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP
-
6Please do not use links to other sites. When they disappear so does the information you posted. Prevent 'link rot' from happening by answering with the content of the link (and give credit where credit is due).– RinzwindNov 21, 2011 at 13:46
Most here won't work, since ntp will override your settings within seconds.
You need to disable NTP first. On ubuntu it is done as:
# Disable ntp
sudo timedatectl set-ntp 0
Then you can do:
# Set software clock
sudo date --set="2018-04-01 22:22:22"
# Sync with hardware clock
sudo hwclock --systohc
I had this issue because I would pause a VM for a while and when I resume, Ubuntu 20.04 would refuse to update any packages until the time was corrected. (i.e. packages were not from the 'future').
The easiest way (by terminal) was to run this command:
sudo systemctl restart systemd-timesyncd
Tested on Ubuntu's main GNOME edition 20.04.
No need for a separate command to restart NTP. Updates the reported time in GNOME as well.
You can add this to your bash files:
synctime() {
sudo systemctl restart systemd-timesyncd
}
and run the command after reloading your bash files (or opening a new terminal).
synctime
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
| grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"
or
date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`
-
1The standard way of setting the date and time by connecting with time servers via ntp. Why are you using https connections to do this?– xiotaMay 14, 2018 at 1:23
-
1// , Sometimes it's nice to have an alternative to the standard way, I guess. Jan 16, 2019 at 3:25
-
4
Is there any application that allows me to do so from its user interface rather than from the shell?
I'm using 17.10 and can go to Settings (from the upper-right menu in the UI) > Details > Date & Time. In my case, my system wasn't updating from the Internet even though "Automatic Date & Time" was set to "ON". I simply changed it to "OFF", waited a second, then changed it back to "ON". It picked up the current date and time and I was good to go.
You need to install the ntp
package. Date/Time settings are availble under system settings. Here's some more information.
-
4The link is dead... As said by Rinzwind "Please do not use links to other sites. When they disappear so does the information you posted. Prevent 'link rot' from happening by answering with the content of the link (and give credit where credit is due)." Thanks– MicheleSep 7, 2014 at 14:30
Thanks to Twiglets [For AsusWRT/Merlin Routers]
Here is an alternative that DOES set the date !!! [-s option]. Prints out 'Date' it retrieves & the 'Date' that is set for comparison.
On AsusWRT / Merlin, the only thing that is odd is that the date retrieved is ".... GMT" and the date utility sets the correct time but changes it to "... DST" Environment has TZ set to "GMT"
datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
Sometimes when time is out of sync, it is really hard to even go to the internet since it could make DNSSEC validation failures.
This is another way to sync time using ssh
sshpass -p 'password' ssh -t -o StrictHostKeyChecking=no user@hostname "sudo -S <<< 'password' date -s @$(date -u +"%s")"
ntpd
. This is a small process that runs in the background and adjusts time constantly instead of bursts/jumps, but it will take up a bit of your resources.