10.2 Trabalhando com datas de forma fluente

Transformações com datas em Java

Antigo (Calendar) — Verboso

Exemplo para adicionar 1 mês:
Calendar mesQueVem = Calendar.getInstance();
mesQueVem.add(Calendar.MONTH, 1);

Novo (java.time API) — Fluente e Moderna

Exemplo equivalente:
LocalDate mesQue…


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA

Transformações com datas em Java

Antigo (Calendar) — Verboso

Exemplo para adicionar 1 mês:
Calendar mesQueVem = Calendar.getInstance();
mesQueVem.add(Calendar.MONTH, 1);

Novo (java.time API) — Fluente e Moderna

Exemplo equivalente:
LocalDate mesQueVem = LocalDate.now().plusMonths(1);

Vantagens:

  • Encadeamento de métodos sem risco de NullPointerException

  • Métodos para adicionar ou subtrair:

plusDays()
plusMonths()
plusYears()
minusDays()
minusMonths()
minusYears()

Classes Principais da nova API

LocalDate

  • Representa data (sem hora ou timezone)

LocalDate hoje = LocalDate.now();

LocalDateTime

  • Representa data + hora (sem timezone)

LocalDateTime agora = LocalDateTime.now();

  • Criar LocalDateTime com horário específico:

LocalDateTime hojeAoMeioDia = LocalDate.now().atTime(12,0);

LocalTime

  • Representa apenas hora:

LocalTime agora = LocalTime.now();

Combinação de modelos

LocalDate + LocalTime → LocalDateTime

LocalDateTime dataEhora = LocalDate.now().atTime(LocalTime.now());

LocalDateTime + ZoneId → ZonedDateTime

ZonedDateTime dataComHoraETimezone = dataEhora.atZone(ZoneId.of("America/Sao_Paulo"));

Conversões entre modelos

ZonedDateTime → LocalDateTime:

LocalDateTime semTimeZone = dataComHoraETimezone.toLocalDateTime();

LocalDateTime → LocalDate:

LocalDate apenasData = dataEhora.toLocalDate();

Criação de Instâncias

Factory Method — of(): Criar datas com valores específicos:

LocalDate date = LocalDate.of(2014, 12, 25);
LocalDateTime dateTime = LocalDateTime.of(2014, 12, 25, 10, 30);

Parse — A partir de String: Conversão de String em data (detalhado mais à frente)

Imutabilidade da nova API

  • Cada operação gera um novo objeto

  • Segurança em ambientes concorrentes

  • Permite encadeamento de métodos

Modificação de valores — Métodos with

Exemplo para trocar o ano:

LocalDate dataDoPassado = LocalDate.now().withYear(1988);

Recuperação de informações — Métodos get

dataDoPassado.getYear(); // retorna 1988
dataDoPassado.getMonth(); // retorna o mês


This content originally appeared on DEV Community and was authored by FUNDAMENTOS JAVA


Print Share Comment Cite Upload Translate Updates
APA

FUNDAMENTOS JAVA | Sciencx (2025-04-07T23:47:06+00:00) 10.2 Trabalhando com datas de forma fluente. Retrieved from https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/

MLA
" » 10.2 Trabalhando com datas de forma fluente." FUNDAMENTOS JAVA | Sciencx - Monday April 7, 2025, https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/
HARVARD
FUNDAMENTOS JAVA | Sciencx Monday April 7, 2025 » 10.2 Trabalhando com datas de forma fluente., viewed ,<https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/>
VANCOUVER
FUNDAMENTOS JAVA | Sciencx - » 10.2 Trabalhando com datas de forma fluente. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/
CHICAGO
" » 10.2 Trabalhando com datas de forma fluente." FUNDAMENTOS JAVA | Sciencx - Accessed . https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/
IEEE
" » 10.2 Trabalhando com datas de forma fluente." FUNDAMENTOS JAVA | Sciencx [Online]. Available: https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/. [Accessed: ]
rf:citation
» 10.2 Trabalhando com datas de forma fluente | FUNDAMENTOS JAVA | Sciencx | https://www.scien.cx/2025/04/07/10-2-trabalhando-com-datas-de-forma-fluente/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.