Converte uma data para o timestamp do UNIX no OpenBSD

1

No OpenBSD 6.3 eu posso ver:

foo# date
Sun Apr  1 17:00:45 CEST 2018
foo#
foo# date -d "Sun Apr  1 17:00:45 CEST 2018" +%s
1522594858
foo# date
Sun Apr  1 17:00:59 CEST 2018
foo#

essa "data" não suporta a conversão normal.

O link diz que o 1522594858 é:

Your time zone: Sunday, April 1, 2018 5:00:58 PM GMT+02:00 DST

Portanto, o comando date que eu emiti retornou apenas o timestamp unix da hora CURRENT, não o tempo que eu dei para converter: "Sun Apr 1 17:00:45 CEST 2018".

A questão : como converter uma data determinada para unest timestamp no OpenBSD? Se não com o comando "date", que outras ferramentas shell poderiam fazer isso?

Primeiro, comecei a ler: link - mas não encontrei nada sobre a conversão para o timestamp unix. Então eu tentei google por muitos exemplos, mas não ajudou.

    
por Hessnov 01.04.2018 / 17:05

2 respostas

2

O utilitário date do OpenBSD é usado para

  1. defina a data e / ou a hora no sistema ou
  2. exibe a data e / ou a hora atual ou
  3. analise a hora e a data no formato [[[[[[cc]yy]mm]dd]HH]MM[.SS]] sem definir a hora do sistema, usando a opção -j .

Não é uma ferramenta de conversão de data tão flexível quanto o GNU date em seus recursos de análise. Se você quiser os recursos de análise de tempo / data do GNU date , instale o coreutils port / package e use gdate .

Observe também que a opção -d para date do OpenBSD é usada para definir o valor do sistema para o horário de verão.

    
por 01.04.2018 / 17:18
0

Um executável menor é o busybox. Pode fazer a data:

$ busybox date -D '%a %b %-d %T %Z %Y' -d 'Sun Apr  1 17:00:45 CEST 2018' +%s
1522616445

O -D descreve o formato usado para analisar a sequência em -d .
Lembre-se de que não analisa o valor CEST , ele assume TZ = UTC.
Isso não é um problema para um timestamp de segundos, pois é sempre em UTC + 0.

    
por 02.04.2018 / 00:48

Tags