Problema do fuso horário durante o horário de verão

1

Acabei de ser grampeado pelas horas de economia de luz do dia

Parece que 3rd November 2013 01:00:00 começa a hora EST

Agora, sempre tempo eu definir o meu tempo para 03 de novembro de 2013 00: 58: xx (alguns segundos)

e execute date

me fornece fuso horário válido, por exemplo, EDT

mas

mesmo após o tempo passar 01:00:00 e eu ainda consultar a biblioteca de datas

Ainda vejo o fuso horário como EDT e não EST

dê uma olhada nessa captura de tela

VocêpodeverclaramenteofusohoráriodizendocomoEDT,mesmoquandoéEST

qualquerumtemumapistaparaisso

Atualizar

HáumaoutradescobertaqueencontreiseeureiniciarminhamáquinaEuvejoisso

    
por user1328293 03.11.2013 / 10:01

3 respostas

2

O comportamento que você descreve é o esperado. Consulte este site para confirmação detalhada . Você também pode querer revisar a descrição aqui .

Como o horário de verão está terminando no outono e os relógios se movem para trás, chamamos isso de transição "voltar atrás". Como seu relógio está chegando 2:00, ele volta a 1:00 em vez disso. A hora local de 1:00:00 a 1: 59: 59,999 é repetida. Até o momento 2:00 hits, ele já está repetido a segunda instância da 1:00 hora e DST é bem mais.

Usamos o rótulo EDT para o Horário de Verão do Leste, quando o deslocamento é em UTC-04: 00 e o rótulo EST para o Horário Padrão do Leste, quando o deslocamento é em UTC-05: 00. Portanto, não, EDT e EST não são iguais. importa em qual você está, especialmente durante a 1 hora no dia da transição.

O relógio avança assim:

...
00:59:58 EDT (-0400)
00:59:59 EDT (-0400)
01:00:00 EDT (-0400)   --+
01:00:01 EDT (-0400)     |--- 1st instance of 1:00 hour
...                      |
01:59:59 EDT (-0400)   --+
01:00:00 EST (-0500)   --+  <----  transition
01:00:01 EST (-0500)     |
...                      |--- 2nd instance of 1:00 hour
01:59:59 EST (-0500)   --+
02:00:00 EST (-0500)
02:00:01 EST (-0500)
...

Lembre-se também de que, quando você define a hora para a 1:00 hora local, não está sendo específico o suficiente. Como existem duas instâncias de 1:00, o sistema operacional selecionará apenas uma para você. No Linux e no Mac OSX, o relógio do sistema subjacente é mantido no UTC. 1:00 EDT é às 5:00 UTC, enquanto 1:00 EST é às 6:00 UTC.

Reiniciar sua máquina não deve ter efeito. Meu palpite é que você não recomeçou imediatamente, mas permitiu que o tempo transcorresse, de modo que recuou novamente.

Informações adicionais

Dê uma olhada na página man do date de comando . Podemos definir o relógio pela hora local, usando o formato um tanto estranho de [[[mm]dd]HH]MM[[cc]yy][.ss] . Então, é a 1:00 hora local no dia da transição:

date 110301002013

Mas isso não é muito específico, então o sistema operacional provavelmente está escolhendo o EDT porque é a primeira instância. Pode também escolher o EST, já que não especificamos.

Em vez disso, considere configurá-lo pelo UTC:

date -u 110305002013       (1:00 EDT)

or

date -u 110306002013       (1:00 EST)
    
por 03.11.2013 / 17:55
1

Não sei ao certo como date escolhe seu fuso horário, mas pode ser substituído pela variável de ambiente TZ . A diferença em suas duas capturas de tela (antes / depois da reinicialização) é porque a opção de fuso horário padrão de date foi atualizada. Todos os tempos estavam sempre corretos; é apenas uma questão de como o tempo subjacente foi impresso como uma string.

Não sei se isso ajuda a ficar na raiz da sua confusão, mas achei útil:

EDT e EST são apenas dois fusos horários diferentes, e ambos existem o ano todo. Normalmente, um só altera o fuso horário padrão quando viaja, mas em algumas regiões, as pessoas também alteram seu fuso horário padrão em determinados momentos. Por exemplo. em 2013.nov.03 05:59 GMT as pessoas na costa leste dos EUA tendem a imprimir tempos em EDT; em 2013.nov.03 06:01 GMT eles de repente estarão imprimindo todas as datas em EST.

Se alguém disser "encontre você às 14:30", você precisa saber que fuso horário está usando para torná-lo inequívoco. @ A resposta de Matt esclarece como as pessoas interpretam o fuso horário, quando não é explicitamente declarado.

    
por 03.11.2013 / 18:20
0

edt e est são a mesma zona, exceto edt para o verão (horário de verão) e est é para o inverno (horário padrão). desde que o seu relógio leia a hora certa, isso realmente não importa. também est não começa até às 2 da manhã, nem às 1 da manhã.

    
por 03.11.2013 / 10:25