Não, não falhará. Na pior das hipóteses, do ponto de vista de um programador, ele funcionará como esperado: ele será redefinido para data 1901-12-13 20:45:52:
Isso caso você não atualize suas distribuições atuais até que isso aconteça. " A atualização é fácil. Uma dessas atualizações certamente conterá uma correção. " como chocobai disse .
Lembro-me de que era o mesmo problema / questão com máquinas de 16 bits antes de 2000 e, no final, não houve problemas.
Uma solução da Wikipedia:
A maioria dos sistemas operacionais projetados para execução em hardware de 64 bits já usa números inteiros assinados de 64 bits
time_t
. A utilização de um valor de 64 bits assinado introduz uma nova data de abrangência que é 20 vezes maior do que a idade estimada do universo: aproximadamente 292 bilhões de anos a partir de agora, às 15:30:08 de domingo, 4 de dezembro 292.277.026.596. A capacidade de fazer cálculos em datas é limitada pelo fato de quetm_year
usa um valor int de 32 bits iniciado a partir de 1900 para o ano. Isso limita o ano a um máximo de 2.147.485.547 (2.147.483.647 + 1900). Embora isso resolva o problema de executar programas, ele não resolve o problema de armazenar valores de data em arquivos de dados binários, muitos dos quais empregam formatos de armazenamento rígidos. Também não resolve o problema para programas de 32 bits executados em camadas de compatibilidade e pode não resolver o problema de programas que armazenam incorretamente valores de tempo em variáveis de tipos diferentes detime_t
.
Eu uso o Ubuntu 13.04 em 64 bits e, por curiosidade, mudei manualmente o tempo para 2038-01-19 03:13:00. Depois de 03:14:08 nada aconteceu:
Portanto, não há nada para se preocupar com esse problema.
Mais sobre: