LocalDate, LocalTime, LocalDateTime
Represente datas e horários
LocalDate, LocalTime, LocalDateTime é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
A API moderna de datas
Desde Java 8, o pacote java.time substituiu as antigas classes Date e Calendar, que eram propensas a erros. Seus tipos principais são LocalDate, LocalTime e LocalDateTime.
Todos eles são imutáveis e seguros para uso concorrente.
LocalDate
LocalDate representa uma data sem componente de horário: ano, mês e dia. LocalDate.now() fornece a data de hoje, mas os testes devem usar uma data fixa para produzir uma saída previsível.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date);
}
}Lendo partes da data
Você pode obter cada componente com getYear, getMonthValue, getDayOfMonth e o prático getDayOfWeek.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.getYear());
System.out.println(date.getMonthValue());
System.out.println(date.getDayOfWeek());
}
}LocalTime
LocalTime representa uma hora do dia sem uma data: horas, minutos, segundos e nanossegundos.
import java.time.LocalTime;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 30, 15);
System.out.println(time);
System.out.println(time.getHour());
}
}LocalDateTime
LocalDateTime combina uma data e uma hora em um único valor. Ele ainda não tem um fuso horário associado.
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
System.out.println(dt);
}
}Combinando data e hora
Você pode combinar uma LocalDate com uma LocalTime usando atTime, produzindo um LocalDateTime.
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDate d = LocalDate.of(2026, 5, 30);
LocalTime t = LocalTime.of(8, 0);
LocalDateTime dt = d.atTime(t);
System.out.println(dt);
}
}Imutabilidade e with
Esses tipos são imutáveis. Métodos como withYear retornam uma nova cópia modificada e deixam o original inalterado.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate original = LocalDate.of(2026, 5, 30);
LocalDate changed = original.withYear(2030);
System.out.println(original);
System.out.println(changed);
}
}Comparando datas
Use isBefore, isAfter e isEqual para comparar a ordem cronológica de forma legível.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate a = LocalDate.of(2026, 1, 1);
LocalDate b = LocalDate.of(2026, 12, 31);
System.out.println(a.isBefore(b));
System.out.println(a.isAfter(b));
}
}Consultas úteis
Métodos convenientes respondem a perguntas comuns, como isLeapYear e lengthOfMonth.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2024, 2, 1);
System.out.println(date.isLeapYear());
System.out.println(date.lengthOfMonth());
}
}Analisando a partir de texto
Cada tipo pode analisar uma cadeia de caracteres formatada em ISO. LocalDate.parse lê um valor como 2026-05-30.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.parse("2026-05-30");
System.out.println(date.getMonth());
}
}Escolhendo o tipo certo
Use LocalDate para aniversários e datas do calendário, LocalTime para horários de funcionamento e LocalDateTime para um compromisso que combine uma data com uma hora. Nenhum deles contém um fuso horário.
Verificação rápida
Teste sua compreensão dos principais tipos de data e hora.
Revisão
Você aprendeu os principais tipos de java.time:
LocalDatepara datas,LocalTimepara horas eLocalDateTimepara ambos- Todos são imutáveis; os métodos
withretornam novas cópias - Leia partes com
getYear,getDayOfWeeke outros métodos acessores semelhantes - Compare com
isBeforeeisAfter - Analise cadeias de caracteres ISO com
parse
Perguntas Frequentes
A aula “LocalDate, LocalTime, LocalDateTime” é grátis?
Sim — o texto completo de “LocalDate, LocalTime, LocalDateTime” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “LocalDate, LocalTime, LocalDateTime”?
Represente datas e horários Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “LocalDate, LocalTime, LocalDateTime”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- LocalDate, LocalTime, LocalDateTime
- Instant e Duration
- Period e Aritmética de Datas
- Formatação com DateTimeFormatter