60

Is there such command for changing the System clock's date and time?

For example:

The current date and time is January 1, 1970 22:30:59:980 where 59 and 980 refers to the seconds and millisecods respectively

And I want to change it to January 2, 1971 23:31:59:990

Is there a command for this?

6 Answers6

66

To set the time in Ubuntu from the terminal, you can use the following command:

sudo date new_date_time_string

where new_date_time_string has to follow the format MMDDhhmmyyyy.ss which is described below:

  • MM is a two digit month, between 01 to 12
  • DD is a two digit day, between 01 and 31, with the regular rules for days according to month and year applying
  • hh is two digit hour, using the 24-hour period so it is between 00 and 23
  • mm is two digit minute, between 00 and 59
  • yyyy is the year; it can be two digit or four digit
  • ss is two digit seconds. Notice the period . before the ss.

Source: Manage Time in Ubuntu Through Command Line.

So, in your particular case, you can use:

sudo date 010224311971.59

Or, you can use:

sudo date --set="1971-01-02 23:31:59.990"  && date --rfc-3339=ns

which is exactly what you asked.

Source:

Radu Rădeanu
  • 174,089
  • 51
  • 332
  • 407
21

The easy way:

ntpdate -s ntp.ubuntu.com

To change the timezone:

dpkg-reconfigure tzdata

Probably you need sudo.

Eliah Kagan
  • 119,640
Ninecols
  • 235
6

You can use the date command to change the time and you'll need sudo permission to do it; an example to set the date to 27 June 2014 and the time to 1:17 AM is:

sudo date --set "27 Jun 2014 1:17:00"
kos
  • 41,268
aabhas
  • 193
  • 1
  • 6
6

Since systemd was introducted in Ubuntu, the correct way is:

# timedatectl set-time "RFC 3339-compliant string"

e.g.

# timedatectl set-time "2002-10-02T10:00:00-05:00"
# timedatectl set-time "10:35"
# timedatectl set-time "+2 hours"
jojman
  • 273
  • 3
  • 5
1

Short versions for setting date or time only:

To set the date (will set the time to 0:0:0):

date +%Y%m%d -s "19710102"

To set the time only:

date +%T -s "23:31:59"

You could add the desired ".990" to the seconds.

Read the man page for more options and formats regarding the date command:

man date

Note: you may also want to check or set the hardware clock. Read about it here.

karel
  • 122,292
  • 133
  • 301
  • 332
elomage
  • 1,400
-3
sudo date --set="Mon Feb 16 08:49:56 IST 2015"

That would be correct statement in UBUNTU 14.04.

muru
  • 207,228