Tem a data de poupança de alteração de regra invalidada a biblioteca C runtime?

StackOverflow https://stackoverflow.com/questions/275952

  •  07-07-2019
  •  | 
  •  

Pergunta

Algum tempo atrás eu coloquei uma horário baseado biblioteca que pode ser usada para trabalhar, em relação vezes dentro de um ano para alguém.Eu disse na época, que ele fez a uma mudança de hora em ambas as direções para o horário de poupança.Ele apenas me ocorreu que O congresso mudou o horário de verão regras.Eu não lembro de ter visto qualquer informação sobre atualizações para resolver a mudança nos algoritmos.Alguém tem alguma informação sobre este tema?

Foi útil?

Solução

A maioria dos sistemas semelhantes ao Unix usa o banco de dados Olson TZ para obter informações sobre fugas horárias:

http://www.twinsun.com/tz/tz-link.htm

As alterações nas regras do fuso horário dos EUA foram implementadas na versão 2005L do banco de dados TZ.

Outras dicas

Para o Visual Studio 2005 e anterior, a Microsoft lançou versões atualizadas das bibliotecas de tempo de execução C. Mais informações podem ser encontradas aqui.

Em que plataforma você está trabalhando?

Como o Congresso não define as regras para o mundo inteiro :) Houve um mecanismo para especificar de maneira flexível as regras no Unix/Linux por um longo tempo

Veja, por exemplo, http://www.manpagez.com/man/8/zic/ Para o formato dos arquivos. Seu sistema específico pode precisar de uma definição atualizada para as novas regras (se a distribuição ainda não lidou com isso)

Para o Windows, o MS construa algumas regras e libere atualizações quando as coisas mudam.

Para o MacOS, não tenho idéia, mas imagino que herde a maneira Unix de fazer as coisas.

Mas em todos esses casos, nenhuma alteração na biblioteca C deve ser necessária

Em uma nota mais geral, o tempo de execução C usa arquivos de dados internos para mapear da representação interna do tempo para o local do usuário. Esses mapeamentos são atualizados regularmente pelos respectivos fornecedores para corresponder à legislação atual.

Desde relógios internos deve ser definido para UTC, horário de verão é apenas uma questão de mudar o fuso horário.Por exemplo, na minha localidade, no dia 26 de outubro o meu Mac alternado da CET ( central european summer time ) para 'normal' CET ( central european time ).Meu relógio de exibição alterado, mas não a hora do computador.

http://www.timeanddate.com/library/abbreviations/timezones/eu/cest.html

De fato, isso significa que você absolutamente tem que manter seu datetime variáveis em UTC ou em um formato nativo que leva o fuso horário em conta.Que é por isso que apenas a gravação de data / hora como um "YYYYMMDDHHMMSS" cadeia de caracteres, é um erro à espera de acontecer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top