man date
não me mostrará nenhuma palavra reservada, mas eles têm 'agora' ou 'hoje' etc.
Gostaria de saber se existe alguma maneira clara de imprimir o início (00:00:00) do dia.
Será date -u -d "$(date +'%F')"
suficiente em qualquer situação? Parece um pouco burro.
date -d 00:00
oudate -d 00:00:00
trabalhe com as implementações GNU, ast-open, toybox e busybox dodate
.date -d 0
também funciona com GNUdate
.Com BSD
date
:Nenhum dos
-j
,-f
,-d
é a opção padrão paradate
.O POSIX
date
não permite especificar uma data de entrada diferente de agora, exceto para definir o relógio do sistema (na opção XSI).Você poderia fazer:
Mas a
BST
parte pode acabar dando errado se você rodar isso no dia em que o relógio muda de/para o horário de inverno.ksh93
ezsh
tem suporte embutido para analisar datas de entrada:ksh93
(
bash
copiado%(format)T
do ksh93, mas não a capacidade de especificar datas de entrada que não sejam em segundos de época).ksh93 também pode ser construído com o ast-open
date
embutido.zsh
Ou obtendo a data de hoje usando a expansão do prompt (aqui por meio do
%
sinalizador de expansão do parâmetro):Observe que seu:
Pega a data de hoje em seu fuso horário no formato AAAA-MM-DD, mas pede
date
para fornecer a hora para 00:00:00 UTC naquele dia, que, a menos que você esteja em um fuso horário que atualmente esteja alinhado com UTC, não seja o começo do seu dia.Aqui na Grã-Bretanha continental, que ainda está no horário de verão (uma hora antes do UTC):