I am writing a method to take a DOB of 3 integers - day, month, year and return the formatted version DD/MM/YYYY.
I am currently using dateFormatter and simple date form
Why use formatter? just do this:
public String DateOfBirth(int day, int month, int year)
{
String DOB = day + "/" + month + "/" + year;
return DOB;
}
If it's for an assignment, the teacher probably wants you to not use formatter.
Also, as someone else mentioned: If you are trying to concatenate integers as a string you need some string in between. Otherwise you are summing the values of the integers.
LocalDate.of( 2017 , 1 , 23 )
.format( DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) )
23/01/2017
The modern way uses the java.time classes.
Avoid the old legacy date-time classes such as Date
and Calendar
as they are poorly designed, confusing, troublesome, and flawed.
LocalDate
LocalDate
represents a date-only value without time-of-day and without time zone. Note that unlike the legacy classes, here the months have sane numbering 1-12 for January-December.
LocalDate ld = LocalDate.of( 2017 , 1 , 23 );
DateTimeFormatter
Generate a String representing that value by using a formatter object.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
String output = ld.format( f );