[{"data":1,"prerenderedAt":194},["ShallowReactive",2],{"page:/pt/guides/year-2038-problem":3},{"id":4,"title":5,"body":6,"description":180,"extension":181,"eyebrow":182,"faq":183,"locale":184,"meta":185,"navigation":186,"pageType":187,"path":188,"related":183,"seo":189,"stem":192,"__hash__":193},"pages/pt/guides/year-2038-problem.md","O problema do ano 2038",{"type":7,"value":8,"toc":168},"minimark",[9,14,23,27,30,34,37,41,44,48,98,107,110,114,117,120,124,132,145,149],[10,11,13],"h2",{"id":12},"o-limite","O limite",[15,16,17,18,22],"p",{},"Um inteiro com sinal de 32 bits armazena de −2.147.483.648 a 2.147.483.647. Interpretado como segundos Unix, o limite positivo é ",[19,20,21],"code",{},"2038-01-19T03:14:07Z",". Adicionar um segundo estoura essa representação.",[10,24,26],{"id":25},"quem-deve-verificar","Quem deve verificar?",[15,28,29],{},"Sistemas operacionais antigos, dispositivos embarcados, colunas de banco e protocolos binários ainda podem usar segundos de 32 bits. Um timestamp de 64 bits ou tipo de data adequado leva o limite prático muito além da vida útil comum, mas toda a cadeia precisa estar preparada.",[10,31,33],{"id":32},"como-testar","Como testar",[15,35,36],{},"Passe valores dos dois lados do limite pelo parser, armazenamento, serialização da API, runtime do cliente e relatórios. Um servidor moderno não protege automaticamente uma coluna antiga ou um protocolo de dispositivo.",[10,38,40],{"id":39},"outros-limites","Outros limites",[15,42,43],{},"Também verifique o intervalo de campos em milissegundos, inteiros seguros do JavaScript e restrições de APIs externas. Unidades e tipos diferentes atingem seus limites em datas diferentes.",[10,45,47],{"id":46},"conferir-o-limite","Conferir o limite",[49,50,51,64],"table",{},[52,53,54],"thead",{},[55,56,57,61],"tr",{},[58,59,60],"th",{},"Segundos Unix",[58,62,63],{},"Data UTC",[65,66,67,78,88],"tbody",{},[55,68,69,75],{},[70,71,72],"td",{},[19,73,74],{},"2147483646",[70,76,77],{},"2038-01-19 03:14:06",[55,79,80,85],{},[70,81,82],{},[19,83,84],{},"2147483647",[70,86,87],{},"2038-01-19 03:14:07",[55,89,90,95],{},[70,91,92],{},[19,93,94],{},"2147483648",[70,96,97],{},"2038-01-19 03:14:08",[15,99,100,101,106],{},"O terceiro valor é válido em uma representação mais ampla. Ele ultrapassa o limite do inteiro de 32 bits com sinal, não a definição do tempo Unix. Confira no ",[102,103,105],"a",{"href":104},"/pt/timestamp-to-date/","conversor"," selecionando segundos.",[15,108,109],{},"Esse tipo de inteiro vai de −2.147.483.648 a 2.147.483.647. Se um sistema antigo sofrer overflow em vez de rejeitar o valor, o próximo número pode se tornar negativo e mostrar uma data em 1901. A falha específica depende da plataforma e do armazenamento.",[10,111,113],{"id":112},"auditar-toda-a-cadeia-de-dados","Auditar toda a cadeia de dados",[15,115,116],{},"Verifique a coluna no banco, o driver, o contrato da API, a serialização e o tipo na aplicação. Ampliar uma coluna não remove uma conversão para 32 bits em um cliente ou dispositivo. Grave e leia valores dos dois lados do limite; compare o inteiro armazenado, além da data.",[15,118,119],{},"Use um inteiro mais amplo ou um tipo de data suportado por toda a cadeia. Um inteiro de 32 bits sem sinal possui outro limite, mais distante, mas não resolve datas negativas nem todas as restrições de protocolos.",[10,121,123],{"id":122},"separar-os-outros-limites","Separar os outros limites",[15,125,126,127,131],{},"O problema de 2038 envolve ",[128,129,130],"strong",{},"segundos"," de 32 bits com sinal. O limite de inteiros exatos do JavaScript e o intervalo de datas do navegador são questões diferentes. Milissegundos, microssegundos e nanossegundos exigem números maiores.",[15,133,134,135,139,140,144],{},"Consulte ",[102,136,138],{"href":137},"/pt/guides/seconds-vs-milliseconds/","segundos e milissegundos",". O ",[102,141,143],{"href":142},"/pt/batch-converter/","conversor em lote"," ajuda a conferir um arquivo de migração, mas não inspeciona nem altera os tipos do seu sistema.",[10,146,148],{"id":147},"normas-e-documentação-técnica","Normas e documentação técnica",[150,151,152,161],"ul",{},[153,154,155],"li",{},[102,156,160],{"href":157,"rel":158},"https://man7.org/linux/man-pages/man2/time.2.html",[159],"nofollow","Linux time(2)",[153,162,163],{},[102,164,167],{"href":165,"rel":166},"https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-time-values-and-time-range",[159],"ECMAScript Date time range",{"title":169,"searchDepth":170,"depth":170,"links":171},"",2,[172,173,174,175,176,177,178,179],{"id":12,"depth":170,"text":13},{"id":25,"depth":170,"text":26},{"id":32,"depth":170,"text":33},{"id":39,"depth":170,"text":40},{"id":46,"depth":170,"text":47},{"id":112,"depth":170,"text":113},{"id":122,"depth":170,"text":123},{"id":147,"depth":170,"text":148},"Entenda por que segundos Unix com sinal de 32 bits estouram em janeiro de 2038, quais sistemas são afetados e como testar.","md","Guia / limites",null,"pt",{},true,"guide","/pt/guides/year-2038-problem",{"title":190,"description":191},"Problema do ano 2038 — Limite do timestamp Unix","Entenda o limite do timestamp Unix com sinal de 32 bits em 2038-01-19 e como sistemas de 64 bits evitam o problema.","pt/guides/year-2038-problem","7JHHspfgC_Mr-MYds7tkFwm3xWE43sTMlDQkC9cWkx0",1792032485261]