web-dev-qa-db-ja.com

Linuxで時刻を手動でUTCタイムスタンプに設定するにはどうすればよいですか?

時間を設定したい場合は、次のようなコマンドを使用できます。

Sudo date +%T -s '17:45:00'

また、システムのタイムゾーンで時計を午後5時45分に設定します。つまり、システムをUTCに設定した場合、これは17:45 UTCになりますが、システムが東部時間に設定されている場合、同じコマンドが実際にクロックを12:45 UTCに更新します。 date -sコマンドで、タイムゾーン識別子を時間とともに指定できる方法はありますか?

3
soapergem

時刻を更新しているデバイスがインターネットに接続されていない場合。また、1秒未満の精度は気にしません。正しい時刻がわかっているコンピューターでこれを使用して、UTCタイムスタンプを使用して正しい時刻を設定するbashコマンドを生成できます。

echo "date +%s -s @$(date +%s)"

これにより、date +%s -s @1541377821のようなものが生成され、他のコンピューターにコピーして貼り付けることができます。

1
Brian

少し試行錯誤を繰り返した結果、私はそれを理解しました。時間だけを設定して強制的にUTCにするために、次のようにします。

Sudo date +%T%Z -s "17:45:00UTC"

日付と時刻を同時に設定したい場合は、次のようにします。

Sudo date -s '2018-01-26T17:45:00Z'
1
soapergem

Linuxのほとんどの種類(特にRedhat/Centosが頭上にある)では、次のようにします。

# Delete the current time zone file
rm -f /etc/localtime

# Set it to the new value
ln -s /usr/share/zoneinfo/UTC /etc/localtime

ご要望どおりdateコマンドを使用していないことを理解しています。

1
UtahJarhead