Capítulo 07: Manipulação de Datas e Horas (java.time API: LocalDate, Instant, Duration)
Especialização em Sistemas com Java 21 LTS • Capítulo 07
🗺️ Mapa Conceitual do Tópico
flowchart LR
A["Instant.now() (UTC)"] --> B["ZonedDateTime (Fuso Horário Local)"]
B -->|"ZoneId.of('America/Sao_Paulo')"| C["Horário Local de São Paulo"]
C -->|"plusDays(N) / minusHours(N)"| D["Aritmética Temporal Imutável"]
C -->|DateTimeFormatter| E["Formatação: 'dd/MM/yyyy HH:mm:ss'"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style C fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
style E fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
📅 1. A API Moderna java.time (Java 8+)
A API java.time substituiu integralmente as classes legadas e problemáticas Date e Calendar.
Classes Centrais:
LocalDate: Representa datas civis sem horário (2026-08-29).LocalDateTime: Combina data e hora civil sem informação de fuso horário.Instant: Ponto na linha temporal contínua em UTC (ideal para timestamps de auditoria).Duration/Period: Representam intervalos de tempo em horas/minutos/segundos ou dias/meses/anos.DateTimeFormatter: Parser e formatador thread-safe.
💻 Exemplo Prático e Compilável em Java 21
// Exemplo07Datas.java - Cálculo de SLA com java.time
package com.empresa.tempo;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Exemplo07Datas {
public static void main(String[] args) {
ZoneId fusoSp = ZoneId.of("America/Sao_Paulo");
ZonedDateTime aberturaChamado = ZonedDateTime.now(fusoSp);
ZonedDateTime prazoSla = aberturaChamado.plus(Duration.ofHours(48));
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss z");
System.out.printf("Abertura do Chamado : %s%n", aberturaChamado.format(fmt));
System.out.printf("Prazo Limite (SLA) : %s%n", prazoSla.format(fmt));
}
}
🔗 Recursos Pedagógicos do Capítulo 07
| Recurso Didático | Finalidade | Link de Acesso |
|---|---|---|
| 📊 Slides de Aula | Apresentação visual interativa com Dark Mode e suporte a teclado | Ver Slides |
| 🧠 Quiz Formativo | Teste interativo de fixação com feedback imediato por alternativa | Fazer Quiz |
| 💻 Exemplos de Código | Demonstrações funcionais compiláveis com saída no console | Ver Exemplos |
| 🧩 Exercícios em 4 Níveis | Lista progressiva de fixação com gabarito em bloco colapsável | Resolver Exercícios |
| 📊 Capítulo Anterior | 📚 Sumário de Tópicos | ✨ Próximo Capítulo |