O busybox date
2 é totalmente capaz de analisar a data na string dada com alguma ajuda 1 (exceto para o fuso horário GMT).
$ gdate='Mon Jan 1 23:59:59 2018 GMT'
$ TZ=GMT0 busybox date -d "$gdate" -D '%a %b %d %T %Y %Z'
Mon Jan 1 23:59:59 GMT 2018
A ajuda é dada com a opção -D
: uma descrição do formato de origem.
Para obter um timestamp do UNIX, basta adicionar o formato de saída esperado +'%s'
:
$ TZ=GMT0 busybox date -d "$gdate" -D '%a %b %d %T %Y %Z' +'%s'
1514851199
1
O busybox date
tem a maioria dos recursos do comando GNU date
e um que o comando GNU date
não: a opção -D
. Obtenha a ajuda do busybox da seguinte forma:
$ busybox date --help
BusyBox v1.27.2 (Debian 1:1.27.2-2) multi-call binary.
Usage: date [OPTIONS] [+FMT] [TIME]
Display time (using +FMT), or set time
[-s,--set] TIME Set time to TIME -u,--utc Work in UTC (don't convert to local time) -R,--rfc-2822 Output RFC-2822 compliant date string -I[SPEC] Output ISO-8601 compliant date string SPEC='date' (default) for date only, 'hours', 'minutes', or 'seconds' for date and time to the indicated precision -r,--reference FILE Display last modification time of FILE -d,--date TIME Display TIME, not 'now' -D FMT Use FMT for -d TIME conversion
Observe a opção -D FMT
.
2
Note que você pode chamar busybox date
de duas maneiras:
$ busybox date
Ou, se um link para busybox
com o nome date
tiver sido instalado no diretório PATH
correto:
$ date
Para verificar, basta solicitar --version
ou --help
para descobrir a data que você instalou.
Com o GNU date
:
$ date --version
date (GNU coreutils) 8.28
Ou (busybox date
):
$ date --help
BusyBox v1.27.2 (Debian 1:1.27.2-2) multi-call binary.
…
…