常常不用,用的时候又忘记,所以专门记录修改系统时间的方法。

一、查看Ubuntu时间的方法

显示当前日期和时间:

date -R

或者

date

设置日期和时间(需要超级用户权限):

sudo date MMDDhhmmYYYY

注意这里的时间格式是月日时分年:

MM:月份
DD:日期
hh:小时(24小时制)
mm:分钟
YY:年份

例如,将时间设置为 2023 年 12 月 6 日 14 点 30 分:

sudo date 120614302023

二、修改Ubuntu系统时间时区

sudo tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Asia
 5) Atlantic Ocean
 6) Australia
 7) Europe
 8) Indian Ocean
 9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 4
Please select a country whose clocks agree with yours.
 1) Afghanistan           18) Iraq                  35) Pakistan
 2) Antarctica            19) Israel                36) Palestine
 3) Armenia               20) Japan                 37) Philippines
 4) Azerbaijan            21) Jordan                38) Qatar
 5) Bahrain               22) Kazakhstan            39) Russia
 6) Bangladesh            23) Korea (North)         40) Saudi Arabia
 7) Bhutan                24) Korea (South)         41) Singapore
 8) Brunei                25) Kuwait                42) Sri Lanka
 9) Cambodia              26) Kyrgyzstan            43) Syria
10) China                 27) Laos                  44) 
11) Cyprus                28) Lebanon               45) Tajikistan
12) East Timor            29) Macau                 46) Thailand
13) Georgia               30) Malaysia              47) Turkmenistan
14)                       31) Mongolia              48) United Arab Emirates
15) India                 32) Myanmar (Burma)       49) Uzbekistan
16) Indonesia             33) Nepal                 50) Vietnam
17) Iran                  34) Oman                  51) Yemen
#? 10
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

        China
        Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Selected time is now:   Wed Dec  7 17:27:16 CST 2022.
Universal Time is now:  Wed Dec  7 09:27:16 UTC 2022.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
        TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

以上为选择Asia\China\Shanghai 时间。

三、执行命令

sudo cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

替换以前的配置文件。

四、执行

sudo hwclock --systohc

将时间写入cmos硬件时钟。

五、ntpdate 命令:用于手动同步时间与NTP服务器。

sudo ntpdate NTP SERVER

启用/禁用网络时间同步(NTP):

sudo timedatectl set-ntp true   # 启用NTP
sudo timedatectl set-ntp false  # 禁用NTP

六、最后验证测试

sudo date -R

查看系统时间是否更新为正确时间。这里需要注意“R”为大写。

除了使用命令行还可以通过图形界面修改,因为比较简单,就不做分享了。注意更改系统时间都需要管理员权限(sudo)。

Ubuntu(以及其他类UNIX系统)的时间工作原理

  • 硬件时钟(Real Time Clock - RTC): 计算机上有一个硬件时钟,RTC,它通常是一个独立的计时器芯片,负责在系统关闭时继续跟踪时间。这个硬件时钟通常设置为协调世界时(UTC)。
  • 操作系统时间: 当你启动计算机并加载Ubuntu时,操作系统会将硬件时钟的时间读取到系统内部来跟踪时间。Ubuntu默认情况下将这个时间转换为本地时区的时间。
  • 系统时间同步: Ubuntu系统通过网络与时间服务器同步时间。这确保了系统时间的准确性,可以通过 NTP(Network Time Protocol)来实现。
  • 时间管理和调整: Ubuntu操作系统有内置的时间管理机制,能够校正时间漂移和时钟偏差。这包括周期性地与时间服务器同步以及校准系统时钟。

随着系统版本的不同,可能还有其他命令和配置文件用于管理时间。无论你选择哪个命令,确保你有足够的权限来修改系统时间,并小心操作,以避免对系统产生不良影响。