私のManjaro Linuxシステムには、以下を含むファイルがあります/etc/timezone
。
Asia/Bangkok
他のManjaroフォーラムのユーザーも同じファイルを持っています。。このスレッドには通常、この問題に関するいくつかの既存の技術が含まれています。
奇妙なことに、timedatectl status
このファイルはレポート用には使用されませんRegion/City
。初期状態は次のとおりです。
$ timedatectl status
Local time: Fri 2018-06-29 11:01:28 +07
Universal time: Fri 2018-06-29 04:01:28 UTC
RTC time: Fri 2018-06-29 04:01:28
Time zone: Asia/Bangkok (+07, +0700)
System clock synchronized: no
systemd-timesyncd.service active: no
RTC in local TZ: no
これで、/etc/localtime
シンボリックリンクを指すファイルの内容で上書きされます。
$ sudo ln -f "$(realpath /etc/localtime)" /etc/localtime
$ timedatectl status
Local time: Fri 2018-06-29 04:04:03 UTC
Universal time: Fri 2018-06-29 04:04:03 UTC
RTC time: Fri 2018-06-29 04:04:04
Time zone: n/a (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: no
RTC in local TZ: no
現地時間は、UTCとタイムn/a
ゾーンに合わせて変更されます。
だから読まtimedatectl
ないで/etc/timezone
timedatectl set-timezone
書かないで/etc/timezone
返品。
この推測に加えて、私は/etc/timezone
ミステリーです。
- 何が書かれていますか?
- 何を読むべきですか?
- 何のために?
ベストアンサー1
GNU libc(および組み込まれていないすべてのLinux)は、/etc/localtime
システムのタイムゾーン(TZ
環境変数またはアプリケーション固有の設定でオーバーライドされていない場合はデフォルトのタイムゾーン)を決定するために読み取ります。 *BSDも同じことをします。一部の組み込みLinuxシステムでは、さまざまな作業が行われます。
/etc/localtime
以下のファイルへのシンボリックリンクでなければなりません/usr/share/zoneinfo/
。一般的なアプリケーションは気にせず、ファイルの内容のみを読み込みます。ただし、システム管理ユーティリティ(たとえば)は設定をtimedatectl
変更したり、シンボリックリンクの宛先を変更してこれを行うため、より重要です。
Javaは違う(またはそうでしたか?)/etc/timezone
:ファイルに基づくタイムゾーン名を含むファイルのパスを読み取ります/usr/share/zoneinfo
。私はそれを使用する他のプログラムを知らず、/etc/timezone
なぜSunが世界の他の場所とは異なる方法を選ぶのかわかりません。