Recuperar primeira hora no horário de verão - data GNU

1

No último final de semana, a maior parte da Europa Ocidental voltou uma hora - havia duas instâncias de 2017-10-29T02:00 .

Para traduzir a hora em UTC, posso usar a data do GNU:

$ date -d 'TZ="Europe/Rome" 2017-10-29 02:00'
Sun Oct 29 01:00:00 UTC 2017

Isso retorna o tempo no CET (ou seja, o segundo 2:00). Como obtenho o date para retornar Sun Oct 29 00:00:00 UTC 2017 (as 2 primeiras - CEST)?

Informação:

$ date --version
date (GNU coreutils) 8.21
    
por DarkHeart 30.10.2017 / 02:24

2 respostas

1

O tempo TZ="Europe/Rome" 2017-10-29 02:00 é ambíguo, pois isso se traduz em dois horários UTC diferentes, 00:00 e 01:00 .

Como fazer o retorno da data ambos é para especificar o fuso horário exato em si, por exemplo,

$ date -ud 'TZ="Europe/Rome" 02:00:00 10/29/2017 CEST'
Sun Oct 29 00:00:00 UTC 2017
$ date -ud 'TZ="Europe/Rome" 02:00:00 10/29/2017 CET'
Sun Oct 29 01:00:00 UTC 2017

No entanto, isso significa que você precisa calcular o fuso horário fora do comando de data.

    
por 31.10.2017 / 01:57
1

A referência para alterações de fuso horário é zdump :

$ /usr/sbin/zdump -v -c 2017,2018 Europe/Rome
Europe/Rome  -9223372036854775808 = NULL
Europe/Rome  -9223372036854689408 = NULL
Europe/Rome  Sun Mar 26 00:59:59 2017 UTC = Sun Mar 26 01:59:59 2017 CET isdst=0
Europe/Rome  Sun Mar 26 01:00:00 2017 UTC = Sun Mar 26 03:00:00 2017 CEST isdst=1
Europe/Rome  Sun Oct 29 00:59:59 2017 UTC = Sun Oct 29 02:59:59 2017 CEST isdst=1
Europe/Rome  Sun Oct 29 01:00:00 2017 UTC = Sun Oct 29 02:00:00 2017 CET isdst=0
Europe/Rome  9223372036854689407 = NULL
Europe/Rome  9223372036854775807 = NULL
    
por 30.10.2017 / 08:20