How to change ubuntu's server date and time via command line?
Solution 1
You can set the system date with this command:
sudo date --set="2015-09-30 10:05:59.990"
Then when using date
, it should be showed correctly.
Now you should also the set hardware clock in the BIOS of the system, that the setting persists over a reboot (dureing the startup the system time is set to the value of the hardware clock). Do that with hwclock
:
sudo hwclock --systohc
This gets the system clocks (sys) value and sets the hardware clock (hc). Check it with the hwclock
command. Both hwclock
and date
should now show the same date and time.
To set your timezone, you can use this command:
sudo dpkg-reconfigure tzdata
BTW: If you use a this machine as a server, I strongly recommend using an NTP-Client to sync the time over network. So you can guarantee that all your servers have the exactly same time set. This will sync the time while the machine runs. If you have applications which are dependent of synced time over server, I recommend the NTP-Daemon. The longer it runs in the background, the more precise is the time.
Solution 2
- Search for your timezone
timedatectl list-timezones
- Set your timezone
sudo timedatectl set-timezone America/Toronto
- Enable
timesyncd
sudo timedatectl set-ntp on
With this, time should be set and synchronized.
You can see more on this tutorial : https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04
Solution 3
I dislike setting system time manually. So to fix this issue I had to combine two different answers.
To fix system time you have to use this code:
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
as given in this answer
Then you sync the hardware clock with system clock using
sudo hwclock --systohc
as given by @chaos in this thread.
Solution 4
Me helped:
1 - step (preparation)
timedatectl set-local-rtc 0
sudo timedatectl set-ntp 1
sudo hwclock --systohc
sudo timedatectl set-ntp 0
2 - step (set datetime)
sudo timedatectl set-time "06:24:00"
sudo timedatectl set-time "2020-04-23"
sudo hwclock --systohc
or
sudo date --set="2020-04-23 06:24:25.990"
sudo hwclock --systohc
3 - step (check datetime)
timedatectl
Solution 5
I'm using Ubuntu-based servers on Amazon AWS. All of the SUDO DATE answers DID NOT WORK for me. SUDO DATE returned the new date as the output, but subsequent DATE invocations still shows the old date. Also, HWCLOCK did nothing but return an error.
The answer for me was:
sudo timedatectl set-ntp false
sudo timedatectl set-time "date-time-string"
Related videos on Youtube
Priska Aprilia
Updated on September 18, 2022Comments
-
Priska Aprilia almost 2 years
The Ubuntu server's current date and time is different from the time zone date and time. I have tried using:
sudo date "30 Sep 2015 4:43:42"
to change it but it did not change the date and time, just printed on terminal the date and time I changed, but when I executed:
sudo hwclock --show
The date and time is still the old one.
What is the correct way to change date and time of Ubuntu Server?
-
Wolfgang over 8 yearsyou really typed "sudo date newdate" - the word "newdate"?
-
Priska Aprilia over 8 yearsNope. I have edited my question. I typed "30 Sept 2015 4:43:42"
-
-
Priska Aprilia over 8 yearsinvalid date range when i tried with "093005082015.15" which stands for 30 Sept 2015, 05:08:15
-
Priska Aprilia over 8 yearsI missed the clock synchronization step. Thank you for your answer, it helped me!
-
Vladimir Ch over 7 years3 option helps, it changed etc/timezone =) like php.net/manual/en/timezones.php !!! absolutely identical !!!
-
PeterM over 7 years@VladimirCh Fortunatelly time zones names are stadarized, so we don't have to make any adjustments between systems. Oh, wait... there are some Microsoft version too...
-
vusan over 6 years
sudo date "093005082015.15"
working on mine. -
Vinod about 5 yearsI try to change but its not changing:- $ sudo date --set="2015-09-30 10:05:59.990" Wed Sep 30 10:05:59 +0530 2015 $ date Thu May 23 15:10:37 +0530 2019
-
Rafael Moni about 5 yearsBest way to fix it without manually set hours and minutes! Thanks a lot!
-
Nick Andriopoulos about 4 yearsthis should not be the accepted answer since it mentions timezone explicitly
-
Ryan Arief about 4 yearspls add sudo timedatectl set-ntp 0 to make sure NTP is disable, this one helps me
-
uptoyou almost 3 yearsThanks man, saved my day !