Date formatting based on user locale on android

android, date-format, internationalization

Solution

You can use the DateFormat class that formats a date according to the user locale.

Example:

String dateOfBirth = "26/02/1974";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
    date = sdf.parse(dateOfBirth);
} catch (ParseException e) {
    // handle exception here !
}
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
String s = dateFormat.format(date);

You can use the different methods `getLongDateFormat`, `getMediumDateFormat` depending on the level of verbosity you would like to have.

Problem

I want to display a date of birth based on the user locale. In my application, one of my fields is the date of birth, which is currently in the format `dd/mm/yyyy`. So if the user changes his locale, the date format should also change accordingly. Any pointers or code samples would really help me to overcome the problem.

Original source

Related problems