如何通过命令行更改ubuntu的服务器日期和时间?

Ubuntu服务器的当前日期和时间与时区日期和时间不同。 我试过用过:

sudo date "30 Sep 2015 4:43:42" 

更改它但它没有改变日期和时间,只是在终端上打印了我更改的日期和时间,但是当我执行时:

 sudo hwclock --show 

日期和时间仍然是旧的。

更改Ubuntu Server的日期和时间的正确方法是什么?

您可以使用以下命令设置系统日期

 sudo date --set="2015-09-30 10:05:59.990" 

然后在使用date ,应该正确显示。

现在您还应该在系统的BIOS中设置硬件时钟 ,该设置在重新启动时仍然存在(在启动时将系统时间设置为硬件时钟的值)。 用hwclock做到这一点:

 sudo hwclock --systohc 

这将获取系统时钟(sys)值并设置硬件时钟(hc)。 使用hwclock命令检查它。 hwclockdate现在应该显示相同的日期和时间。


要设置时区 ,可以使用以下命令:

 sudo dpkg-reconfigure tzdata 

顺便说一句 :如果您将此计算机用作服务器,我强烈建议您使用NTP客户端通过网络同步时间 。 因此,您可以保证所有服务器都具有完全相同的时间设置。 这将在机器运行时同步时间。 如果您的应用程序依赖于服务器上的同步时间,我建议使用NTP-Daemon。 它在后台运行的时间越长,时间就越精确。

我不喜欢手动设置系统时间。 所以要解决这个问题我必须结合两个不同的答案。
要修复系统时间,您必须使用以下代码:

 sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z" 

在这个答案中给出
然后使用,将硬件时钟与系统时钟同步

 sudo hwclock --systohc 

由@chaos在这个post中给出的。

只需输入

 sudo date newdatestring 

使用格式为nnddhhmmyyyy.ss的newdatestring

  • nn:(两位数)月份(01到12)
  • dd:(两位数)日(01到31),根据月份和年份适用的日常规则
  • ……:(两位数)小时(00到23)
  • mm:(两位数)分钟(00到59)
  • yyyy:这一年; 它可以是两位数或四位数
  • ss是两位数秒(00到59)。 注意期间’。’ 在ss之前。

但是除了date命令之外,您可能更喜欢NTP“解决方案”(网络时间协议): Serverguide – NTP ,比手动设置日期更容易处理和更精确。 您可以使用cronjob或ntp守护程序(ntpd)每x小时/分钟更新一次时间…

希望这可以帮助!