web-dev-qa-db-ja.com

ローカルタイムを設定します。 dpkg-reconfigure tzdata

私はこれを使ってローカルタイムを設定しています:

dpkg-reconfigure tzdata 

Ncursesインターフェースです。これをプログラミングする方法を探しています。ユーザーncursesインターフェイスなしの本当の方法はありますか?

1つのシェルコマンドで現地時間を変更する方法

5
unixlinuxuser

1つのシェルコマンドでタイムゾーンを変更することを想定しています。

システムにtimedatectlがありますか?

その場合:

timedatectl statusは現在の設定を表示します。

timedatectl list-timezonesは、利用可能なタイムゾーンを示します。

timedatectl set-timezone Antarctica/Mawson設定します。

注: RTCが現地時間に設定されている場合、これはRTC時間も更新します。

8
garethTheRed

ユーザーncursesインターフェイスなしの本当の方法はありますか?

echo Antarctica/Mawson >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata

はい、1つのシェルコマンドを作成できます。

sh -c 'echo Antarctica/Mawson >/etc/timezone && dpkg-reconfigure -f noninteractive tzdata'

:)

tzdataには バグ があります。特定の値はdpkg-reconfigureによって正規化されます:

echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'

echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
3

私がいつも取っている方法:

# /bin/ln -fs /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime

LinuxからBSDファミリーまで、かなりどこでも動作します。

1
anonymous

ここでの答えはどれも私にとってうまくいきませんでした。私のために働いたのは走っていました:

printf "%s\n"                                              \
       "tzdata  tzdata/Areas    select America"            \
       "tzdata  tzdata/Zones/America    select New_York"   \
       | debconf-set-selections

これを実行した後、トリガーできるようになったとき

DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata

また、事前に読み込まれた設定に基づいて、正しいタイムゾーンを自動的に使用します。

1
user541686