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.