Historicamente, o cálculo de datas usava classes como java.util.Date e java.util.Calendar, que tinham problemas com design e usabilidade.
java.util.Date
java.util.Calendar
Antigamente, comparar datas em Java era mais complicado e impreciso, usando java.util.Date e SimpleDateFormat.
SimpleDateFormat
Para converter uma data em String em Java, você pode usar a classe java.time.format.DateTimeFormatter junto com as classes de data e hora da API java.time.
java.time.format.DateTimeFormatter
java.time
Java oferece várias maneiras de obter a data atual, usando tanto a antiga classe java.util.Date quanto o mais novo pacote java.time (introduzido no Java 8), que é mais versátil e intuitivo.
Como Fazer: Usando o pacote java.time (Recomendado no Java 8 e posteriores): import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class DateParser { public static void main(String[] args) { String dateString = "2023-04-30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(dateString, formatter); System.out.println(date); // Saída: 2023-04-30 } } Usando SimpleDateFormat (Abordagem Antiga): import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateParser { public static void main(String[] args) { String dateString = "30/04/2023"; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); try { Date date = formatter.