Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

String (date) to int (day) + int (mont) + int (year) to LocalDate

Tags:

java

date

I want the user to enter a birth date, but it has to work if they put it in this pattern dd-MM-yyyy but also if they put it in this pattern d-M-yyyy. I know I have to use integers or something, but I don't know where and how. See my code below:

public class Student {
private int studentnr;
private String voornaam;
private String achternaam;
private LocalDate geboortedatum;
private Adres adres;

/**
 * Default Constructor maakt een student aan
 * @param studentnr
 * Studentnr wordt meegegeven in main
 * @param voornaam
 * Voornaam wordt meegegeven in main
 * @param achternaam
 * Achternaam wordt meegegeven in main
 * @param geboortedatum
 * Geboortedatum wordt meegegeven in main
 * @param adres
 * Adres wordt meegegeven in main
 */
public Student(int studentnr, String voornaam, String achternaam, String geboortedatum, Adres adres) {
    this.studentnr = studentnr;
    this.voornaam = voornaam;
    this.achternaam = achternaam;
    this.geboortedatum = LocalDate.parse(geboortedatum, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
    this.adres = adres;
}
like image 529
Connor Avatar asked Feb 03 '26 11:02

Connor


1 Answers

d-M-yyyy pattern will work regardless of leading zeros in day and month:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d-M-yyyy");
System.out.println(LocalDate.from(dtf.parse("1-2-2001"))); // 2001-02-01
System.out.println(LocalDate.from(dtf.parse("01-02-2001"))); // 2001-02-01
like image 59
Karol Dowbecki Avatar answered Feb 06 '26 02:02

Karol Dowbecki



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!