Falha ao aumentar a data em uma hora

2

Estou tendo um problema interessante com o comando date no meu script. Meu script gera cargas de dados por hora de um determinado período. Eu uso a função de data para aumentar a data "de" por uma hora até atingir a data "". O método de data funciona muito bem e aumentou a data "de" por uma hora, como eu esperava. No entanto, ele pára de aumentar uma vez que atinge 2017/11/05 01:00:00. Eu não testei muitas datas inteiras ainda, mas a outra data que tem o mesmo problema é 2016/11/06 01:00:00.

$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T"
2017/11/05 01:00:00

$ date -d "2016/11/06 01:00:00 1 hour" +"%Y/%m/%d %T"
2016/11/06 01:00:00

versão do Linux Linux 3.10.0-229.4.2.el7.x86_64

    
por KMC 11.10.2018 / 16:43

2 respostas

1

Acontece que o DST (horário de verão) está causando esse problema. Quando eu passar a data do horário de verão 1 da manhã (primeiro domingo de novembro) para o comando date, ele provavelmente aumentará a data em uma hora internamente e deduzirá uma hora para DST. A solução é usar -u (UTC) como sugerido por @ jkan5855.

$ date -d "2017/11/05 01:00:00 1 hour" +"%Y/%m/%d %T" -u
    
por 11.10.2018 / 20:15
0

Tente fazer date --version para ver com qual versão da data você está voando. O comando em date (GNU Coreutils) 8.30 funciona bem

Reinstale ou atualize o GNU Coreutils (encontre o pacote apropriado para o seu Linux / subsistema), já que ninguém mais está recebendo esse problema aparentemente. Seu comando exato imprime 2017/11/05 02:00:00 para mim.

Se isso não resolver o problema, o seu computador ficará temporariamente com problemas de data. Não tenho uma maneira melhor de descrevê-lo, mas tente reiniciar o computador, pois você também está obtendo isso em outros subsistemas / terminais.

    
por 11.10.2018 / 17:02

Tags