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