Ei, bem-vindos de volta. Scott Stanlick aqui. Nesta lição, vamos dar uma olhada na nova API Java Date/Time. Veremos muitas datas locais, funcionalidade de data e hora do fuso horário local. Veremos como trabalhar com períodos e durações para determinar intervalos de tempo entre esses diferentes tipos temporais. E então, por último, veremos os ajustadores temporais que são muito legais. Você vai se divertir. Então, vamos começar dando uma olhada por que a API Java Date/Time surgiu e é uma história contada. Os calendários gregorianos herdados de data e hora e calendários e outros enfeites, existem desde o Java 1.0 e estou lhe dizendo, eles são terríveis. Eles não são thread-safe, eles são mutáveis o que quer dizer que eles podem mudar debaixo de você se você não for cuidadoso. Eles são muito mal projetados em termos de como eles foram arquitetados. As datas começam com 1900, meses começam em um, os dias começam em zero, e isso provavelmente é o suficiente. Foi uma loucura. E também foi difícil para lidar com fusos horários com o velho mundo. Então vamos virar a página e vamos dar uma olhada nessa novidade. A nova API Java Date/Time é completamente reescrito do zero. É cristalino, limpo, e funciona notavelmente bem. É imutável, então você não vai nos ver dizendo sabia disso, sabia daquilo ou daquilo. Em vez disso, faremos coisas como esta. Nós diremos, eu gostaria de saber qual é a data local agora. ou gostaria de saber qual é a hora local agora e data local, hora local, ou a combinação aqui, hora local, que combina data e hora. Eles não sabem nada sobre fuso horário, e muitas vezes você realmente não se importa e não precisa saber. Se você precisar preocupar-se com o fuso horário, há uma data e hora de zona, como você pode ver. Esses são os quatro tipos que são basicamente a base embaixo disso. Portanto, existem vários métodos, existem toneladas de tipos, mas quando você começar a ver como isso funciona, apenas rola para fora da sua língua. É tão fácil de trabalhar. Então, por exemplo, agora data, que é a minha data local aqui, Posso dizer obter mês. Nesse caso, Vou usar a zona data hora agora como horário do Pacífico. Então eu digo agora hora e data da zona central, sou eu aqui. Mas com a zona, mesmo instante. Em outras palavras, Eu quero saber agora que horas são se eu estivesse no horário do Pacífico e deve dizer duas horas à frente da Central. Acontece que estou no Centro. E então, se executarmos esse método, executamos este teste, devemos ver que estou no horário central. Devemos ver isso agora que o horário do Pacífico está duas horas à minha frente. Então vamos ver aqui, 17:54 é o meu horário, Central de Chicago. Sim, são 15:54, duas horas à minha frente. Então vamos lá. Vemos a data local, a hora local com precisão de milissegundos. Vemos a data e hora local que é a combinação dos dois e então vemos agora a hora da data da zona central. Então é a enchilada inteira. E menos cinco é menos cinco horas fora do horário de Greenwich. Então, quando perguntei em que mês estamos, ele me disse agosto. Fabuloso. Então vamos dar uma olhada em algumas outras coisas que podemos fazer uma vez que estabelecemos um ponto no tempo, um dia ou uma hora. Podemos fazer coisas como adicionar horas, minutos, dias, anos, você escolhe. Está disponível para fazermos aqui. Neste caso, estou dizendo, Eu gostaria de saber o que é amanhã. Então, se hoje fosse 5 de agosto de 2022, bem amanhã vai ser mais um dia, 6 de agosto de 2022. Ótimo, isso faria sentido. Estou olhando meu calendário. Mas essa coisa entende se isso aconteceu ter sido 28 de fevereiro, o que deve ser amanhã se for um ano bissexto, se não for um ano bissexto. Se é 31 de dezembro e adicionando um dia acaba rolando para um novo ano. Ele está ciente de todos esses rollovers. Portanto, há uma vantagem hoje. Eu disse que é amanhã depois de hoje, certo? E é assim que se lê. Amanhã é depois de hoje. Isso é verdade. Quando vejo que hoje é depois de amanhã, diz não. Então eu digo hoje, pegue o dia da semana. Diz sexta-feira. Obter dia do mês, cinco, obter o dia do ano, 217. Portanto, hoje é o 217º dia do ano. É lindo. Há suporte para compatibilidade com versões anteriores. Deixe-me soletrar isso corretamente. Suporte para compatibilidade com versões anteriores. E funciona assim. eu te disse antes que havia alguns problemas reais com a data/hora antiga. Como por exemplo, o ano começou em 1900. Então, se eu quisesse criar meu aniversário usando o sistema antigo, Eu teria que dizer 1970 menos 1900. E então cinco é o mês, que é baseado em zero, que é junho, que é seis. E então o dia foi na verdade uma base, então 15. Isso deveria ser 15 de junho de 1970 e posso imprimi-lo. Então eu posso dizer, Eu gostaria de transformar esse legado de aniversário em uma data/hora local. Então esta é a ponte, se você quiser para levar o velho e transformá-lo em uma nova data e hora local. Então, vamos executar isso. Eu deveria ver a data antiga e então eu deveria ver a nova data que é efetivamente o mesmo ponto na linha do tempo. Portanto, há a data de nascimento herdada que foi segunda-feira, 15 de junho, CBT 1970, e aqui está a data moderna, que é a hora local, e ambos são de 15 de junho de 1970. Então eles funcionaram perfeitamente. Impressionante. Obrigado por assistir.