O comando de data é um programa bash externo que permite definir ou exibir a data e hora do sistema. Ele também oferece várias opções de formatação. O comando de data é instalado por padrão em todas as distribuições Linux.
$ which date $ type -a date

Digite comando de data no terminal para exibir a data e hora atuais.
$ date

Alterar a Data e Hora do Sistema Linux
Usando o comando de data, a data, hora e fuso horário do sistema podem ser modificados e a alteração deve ser sincronizada com o relógio do hardware.
$ date --set="Thu Nov 12 13:06:59 IST 2020" $ hwclock --systohc

Opções de Formatação
A good place to get the list of formatting options will be the man page.
$ man date
Vamos ver algumas das opções de formatação mais comuns que iremos usar.
- Para aplicar formatação, use “+ seguido por “formatador“.
- Para obter uma lista de opções de formatação para GNU\LINUX, consulte a man page vinculada.
- Para obter uma lista de opções de formatação para BSD, consulte a man page vinculada.
As duas partes importantes do comando de data são usar o Formato +%
e a opção –date.
Agora vamos aplicar formatação no comando date. Para aplicar formatação, adicione o sinal de adição (+)
seguido de %formatador
conforme mostrado nos exemplos.
Manuseio de Data no Linux
Vamos dar uma olhada em como usar formatares relacionados à data em um script de shell simples chamado ‘date.sh‘.
# PRINT YEAR,MONTH,DAY AND DATE... echo "We are in the year = $(date +%Y)" echo "We are in the year = $(date +%y)" # Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year. echo "We are in the month = $(date +%m)" echo "We are in the month = $(date +%b)" echo "We are in the month = $(date +%B)" # Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name. echo "Current Day of the month = $(date +%d)" echo "Current Day of the week = $(date +%A)" echo "Current Day of the week = $(date +%a)" # Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name. # Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format. echo "Date using %D = $(date +%D)" echo "Date using %F = $(date +%F)"

Manuseio de Tempo no Linux
Vamos dar uma olhada em como usar formatares relacionados ao tempo em um script de shell simples chamado ‘time.sh‘.
# PRINT HOURS, MINS, SECONDS, NANO SECONDS echo Hours = $(date +%H) echo Minutes = $(date +%M) echo Seconds = $(date +%S) echo Nanoseconds = $(date +%N) echo Epoch Time = $(date +%s) echo "current time = $(date +%H:%M:%S:%N)" # can also use %T which displays Time in HH:MM:SS format. echo "current time in 24 hour format = $(date +%T)" # can also use %r to display time in 12 hour format. echo "current time in 12 hour format = $(date +%r)"

Com a Bandeira –date ou -d
Com a bandeira --date
ou -d
, a entrada pode ser passada como string e o comando date sabe como lidar com ela de forma inteligente.
Vamos ver alguns exemplos para entender como funciona.
# Print yesterday's date and time. echo "Yesterday = $(date -d "Yesterday")" # Print Tomorrow date and time. echo "tomorrow = $(date -d "tomorrow")" # Find what is the date and time before 10 days from now. echo "Before 10 days = $(date -d "tomorrow -10 days")" # Find last month and next month echo "Last month = $(date -d "last month" "%B")" echo "Next month = $(date -d "next month" "%B")" # Find last year and next year echo "Last Year = $(date -d "last year" "+%Y")" echo "Next Year = $(date -d "next year" "+%Y")" # Forecast the weekday echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")

Operações Comuns
Calcular o número de dias entre 2 datas fornecidas.
$ echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))
Descobrir se o ano fornecido é bissexto ou não.
$ for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done

Atribuir a saída do comando date a uma variável.
$ TODAY=$(date +%Y-%m-%d) OR $ TODAY1=$(date +%F) $ echo $TODAY $ echo $TODAY1

Criar arquivos de log com a data adicionada ao nome do arquivo.
Adicionar data e hora ao criar arquivos de log, backup ou arquivos de texto é uma operação comum que encontraremos com mais frequência. Vamos dar um exemplo, para fazer um backup, criamos um script de shell.
Este script fará um backup das 00:00 às 23:59 e será agendado para ser executado diariamente às 00:00 do dia seguinte. Queremos criar arquivos de log com o formato de data de ontem.
CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M") LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log echo "Script started" >> ${LOG_FILE} ... CODE BLOCKS ... echo "Script completed" >> ${LOG_FILE}
É isso para este artigo. Neste artigo, vimos como usar data e hora do bash no Linux. Deixe-nos saber o seu feedback.
Source:
https://www.tecmint.com/change-linux-system-date-and-time/