O comando para definir a hora do sistema é date
. Você precisa ser root para definir a hora do sistema. date
define o tempo para o tempo determinado, não para um valor relativo do tempo atual, porque esse último comportamento seria bastante inútil. Você pode criar um comando que modifique a hora atual em um valor relativo, fazendo um cálculo na saída de date
e retornando a date
, por exemplo. (em Linux não embarcado)
date $(date +%m%d%H%M%Y.%S -d '1 hour ago')
Tenha em atenção que, se estiver a executar um sistema de marcação de horas, como o NTP, alterar o relógio desta forma irá confundi-lo. Pare primeiro.
A execução de date
define a hora do sistema, não o relógio do hardware. No Linux, execute hwclock --systohc
para copiar a hora do sistema para o relógio do hardware; isso é feito automaticamente em um desligamento limpo.
Se você quiser ver a hora em um fuso horário diferente, esqueça tudo isso e defina o fuso horário desejado. No Linux, execute tzselect
para definir o fuso horário do sistema. Para executar um programa em um fuso horário diferente, defina a variável de ambiente TZ
, por exemplo,
export TZ=Asia/Tokyo
emacs
Se você quiser executar um programa e acreditar que o tempo é diferente do que realmente é, execute-o no programa faketime
.
faketime '1 hour ago' date