0%

如何修改Ubuntu的系统时区

查看系统当前时区

1
2
$ date -R
Tue, 20 Mar 2018 02:01:35 -0400

网上有一堆人说通过执行tzselect命令可以修改时区。我们先执行此命令尝试一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
$ 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) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9

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.
Local time is now: Tue Mar 20 14:05:28 CST 2018.
Universal Time is now: Tue Mar 20 06:05:28 UTC 2018.
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

程序结束,我们执行date -R发现,时区并没有变化。

那就奇怪了,tzselect命令是用于干嘛的呢?那我执行man tzselect再看看。

1
2
3
4
5
6
7
8
9
10
11
12
13
DESCRIPTION
This manual page explains how you can use the tzselect utility to view the installed timezone. It comes handy when you want to know
what time it is in other countries, or if you just wonder what timezones exist.

tzselect is called without any parameters from the shell. It shows a list of about one dozen geographic areas one can roughly recog‐
nize as continents. After choosing a geographic area by number, a list of countries and cities in this area will be shown.

You can press the Enter key to reprint the list. To choose a timezone, just press the number left to it. If your input is invalid,
the list will be reprinted.

You may press Ctrl-C to interrupt the script at any time.

Note that tzselect will not actually change the timezone for you. Use 'dpkg-reconfigure tzdata' to achieve this.

注释中写得很清楚,tzselect命令只用于你查看系统存在哪些国家和时区,并且,此命令并不会真实的修改系统所在时区。我们需要执行dpkg-reconfigure tzdata来修改时区。

1
2
$ sudo dpkg-reconfigure tzdata
[sudo] password for root: ********
1
2
3
Current default time zone: 'Asia/Shanghai'
Local time is now: Tue Mar 20 14:16:40 CST 2018.
Universal Time is now: Tue Mar 20 06:16:40 UTC 2018.

执行结束,系统的时区才会真实的改变了。

1
2
$ date -R
Tue, 20 Mar 2018 14:17:25 +0800