2

Если я хочу установить время, которое я знаю, я могу использовать такую команду:

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

И он установит часы на 5:45 вечера в системном часовом поясе. Это означает, что если у меня установлена система UTC, это будет 17:45 UTC, но если система установлена на восточное время, то та же команда фактически обновит часы до 12:45 UTC. Есть ли способ указать идентификатор часового пояса вместе со временем в команде date -s ?

3 ответа3

1

Если устройство, на котором вы обновляете время, не имеет подключения к интернету. И вас не волнует точность до секунды. Вы можете использовать это на компьютере с известным правильным временем, чтобы сгенерировать команду bash, которая устанавливает правильное время, используя метку времени UTC.

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

Это создаст что-то вроде date +%s -s @1541377821 которое вы сможете скопировать и вставить на другой компьютер.

1

После небольшого количества проб и ошибок я понял это. Чтобы установить только время и заставить его быть в UTC, я могу сделать это:

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

Если я хочу установить дату и время одновременно, я могу сделать это:

sudo date -s '2018-01-26T17:45:00Z'
0

В большинстве разновидностей 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 как вы просили.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .