从Internet更新时间和日期的命令是什么?是否有任何应用程序允许我从其用户界面而不是从Shell进行操作?

评论

您能确定您使用的是哪个Ubuntu版本吗?

您需要非常准确的时间吗? (如果是这样,则需要熟悉ntpq并选择时间服务器)。如果只希望时间正确(大约),请尝试:系统设置>>时间和日期,并检查“设置时间”是否设置为“自动从Internet”。

如果您要一直非常准确,请安装ntpd。这是一个小程序,在后台运行,并且会不断调整时间,而不是突发/跳跃,但是会占用您的一些资源。

与时间服务器同步时间

如今,这个问题至关重要。最近,它变得非常棘手:某些PC使用chrony或ntpd,他们总是找到不更新时间的原因(时钟太错误,赢得了与双引导相关的问题,ntp可能还会拒绝信任没有时钟源的时钟源互联网)。而且,如果您的PC可以上网,但时钟错误,因为现在浏览器和网站会强制您使用HTTPS,由于您的时钟错误,它将被阻止,甚至您也无法用Google来解决它!如果有一个可以解决所有情况的答案,那将是很好的。 “手动设置时间”是目前最可靠的方法。

#1 楼

您可以使用sudo ntpdate time.nist.gov。其他服务器包括time.windows.com等。

http://www.pool.ntp.org/列出了世界各地的时间服务器。

评论


我在使用NTP套接字时出错,退出

–friederbluemle
2014年8月11日在2:29

@friederbluemle如在此答案中所述,您必须停止ntp服务sudo服务ntp停止。然后,您可以使用答案中建议的命令,最后可以使用sudo service ntp start重新启动服务。

–米歇尔
2014年9月7日14:35



我收到“ ntpdate [15806]:找不到适合同步的服务器”错误。下面使用google.com的第二个答案效果更好

– Kim Stacks
17年5月4日在12:10

ntpdate:找不到命令

–rogerdpack
18年5月17日在21:08

如果要使用nptdate,但找不到它,则:sudo apt install ntpdate;请注意,默认情况下不再安装它,并且可能不再是最新版本的ubuntu的首选解决方案;请参阅help.ubuntu.com/community/UbuntuTime,另请参见askubuntu.com/questions/254826/…了解更多选项(以及该问题的其他答案)

–迈克尔
18/09/13在19:30



#2 楼

如果您遇到ntp的问题,这是一个不错的小代码,可以用来更新您的时间:

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


评论


不错的解决方案!

–轮渡Rn
16年8月24日在10:55

这应该是公认的答案!

–brijs
17年1月31日在18:23

可行,但是我有一个问题。该命令将时钟设置为GMT,而不是本地时间。任何解决方法?

– gksamarth
18 Mar 23 '18 at 5:46

这样做很好,但是通常会延迟8到50毫秒,因为它本身并不同步。

– on麋
18年7月14日在14:54

@gksamarth这个命令确实为我设置了正确的时区(我目前是GMT + 2)

– Arnaud P
19/09/11'10:33

#3 楼

从2018年开始,使用全新安装的Ubuntu 16.04 LTS,运行sudo ntpdate time.nist.gov会给出:

sudo: ntpdate: command not found


这是因为(官方消息):


ntpdate被认为已被弃用,取而代之的是timedatectl,因此
默认情况下不再安装。


执行此操作可强制立即进行同步:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on


就我而言,我在virtualbox上运行Ubuntu,并保存了机器状态,因此当我再次启动实例备份时,由于没有启动,它不会自动同步时钟事件触发同步。所以时间仍在显示我上次运行虚拟盒子的时间。

评论


我刚刚升级到仿生,并注意到ntpdate不再工作,并且timedatectl为我工作。

– kapad
18年7月6日在8:39



它在Ubuntu 18.04上也对我有用。

–kiamlaluno
18年7月14日在11:43

如果时间没有改变,请仅用timedatectl检查您的时区。如果不正确,请参阅--help部分以获取有关如何更改它的命令。

–布拉德·图瑞克(Brad Turek)
18年8月22日在16:28



虚拟盒子不错。节省了很多调试的麻烦!

– Mohd Abdul Mujib
18年11月11日23:57

#4 楼

在终端上运行此命令应该可以解决问题。我认为,您可以通过单击时钟并查看其选项来以图形方式添加额外的时区。


br />

评论


时区与(准确的)时间并不完全相同。但是,也不清楚Vikramjeet在问什么。

– david6
2011年11月21日在22:05

问题是从Internet更新时间和日期的命令是什么,sudo dpkg-reconfigure tzdata是答案,那么有什么用呢?关于时区的评论与我所知道的唯一以图形方式可能发生的事情有关

– Jayo
2011年11月21日在22:24



我以图形表示,它们意味着图形(或“ GUI”)方法,而不是地理(或全球)方法。

– david6
2011年11月21日在22:55

我也是吗,我不知道有一种方法可以通过网络以图形方式更新日期和时间,所以我使用终端,我确实知道如何以图形方式进行设置时区,关于时区的部分是我的两个据我所知,我现在可以理解以图形方式影响时间的方法吗?

– Jayo
2011年11月21日23:19

#5 楼

从命令行进行设置非常容易:https://help.ubuntu.com/lts/serverguide/NTP.html通过该链接:


Ubuntu附带了ntpdate作为标准配置,并将在启动时运行一次以根据Ubuntu的NTP服务器设置您的时间:ntpdate -s ntp.ubuntu.com以下是GUI示例https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP

评论


请不要使用指向其他站点的链接。当它们消失时,您发布的信息也会消失。通过回答链接的内容来防止“链接腐烂”的发生(并在应得的信用额中给予信用)。

–灵风
2011年11月21日13:46

#6 楼

由于ntp会在几秒钟内覆盖您的设置,因此此处大多数功能将无法使用。

您需要先禁用NTP。在ubuntu上,操作如下:

    # Disable ntp
    sudo timedatectl set-ntp 0


然后您就可以这样做:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc


#7 楼

dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"




date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`


评论


通过ntp与时间服务器连接来设置日期和时间的标准方法。为什么要使用https连接来执行此操作?

– xiota
18年5月14日在1:23

//,我想有时候可以替代标准方法会很好。

– Nathan Basanese
19年1月16日,3:25

我的ISP阻止了我的NTP服务器

–泰勒
19年2月4日在5:06

#8 楼


是否有任何应用程序允许我从其用户界面而不是从外壳程序执行此操作?


我正在使用17.10,可以转到“设置”(位于上方)用户界面中的-右菜单)>详细信息>日期和时间。就我而言,即使将“自动日期和时间”设置为“开”,我的系统也无法从Internet更新。我只是将其更改为“ OFF”,等待了一秒钟,然后将其更改为“ ON”。它收集了当前的日期和时间,我很高兴去。

#9 楼

您需要安装ntp软件包。日期/时间设置在系统设置下可用。这是更多信息。

评论


该链接已失效...正如Rinzwind所说:“请不要使用指向其他站点的链接。当它们消失时,您发布的信息也将消失。通过回答链接的内容,防止'link rot'发生(并给予信贷)应归功于此)。”谢谢

–米歇尔
2014年9月7日14:30



#10 楼

多亏了Twiglets [适用于AsusWRT / Merlin路由器]

这是确定日期的替代选择! [-s选项]。
打印出它检索的“日期”和设置用于比较的“日期”。

在AsusWRT / Merlin上,唯一奇怪的是检索到的日期为“ .... GMT”,并且日期实用程序设置了正确的时间,但将其更改为“ ... DST”。
环境将TZ设置为“ 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'