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.
…
…