bash
na verdade copiou o formato %(...)T
do ksh93, mas apenas um pequeno subconjunto.
Isso é muito mais poderoso no ksh93.
$ date; printf '%(%c)T\n' 'exactly five minutes ago'
Mon 3 Sep 08:08:32 BST 2018
Mon Sep 3 08:03:32 2018
bash
suporta apenas épocas Unix épocas (ou -1
para agora , embora com versões recentes você também pode obter agora com um argumento ausente) enquanto o ksh93 suporta parente complexo (incluindo inglês como acima, crontab, at
, ISO 8601: 2004) ou especificações de tempo absoluto (veja o dados de teste na fonte para alguns exemplos).
Em ksh93
, se você quiser passar um tempo de época, use um prefixo #
:
$ printf '%(%c)T\n' '#0'
Thu Jan 1 00:00:00 1970
(embora aqui, aconteça para dar o tempo incorreto para mim em um fuso horário britânico em que o horário 0 era 1h )