Как получить выбранный пользователем формат даты в Android?
Я работаю над проблемой формата даты, выбранной пользователями в Android Phone.
Я прошел почти много вопросов и ответов на stackoverlow и havent получил прекрасный ответ.
Например:-
Я выбрал dateformat в телефоне "Sat, 31 Dec 2011"
Но когда я использовал как основанный вопрос, ответил на stackoverflow: -
DateFormat df = android.text.format.DateFormat.getDateFormat(context.getApplicationContext());
tv.setText(df.format(date));
Выше код возвращает мне формат 06/08/2011 (мм/дд/гггг).
Но посмотрите формат даты, который я выбрал на телефоне. Как я могу получить точный формат?
Ответы
Ответ 1
В приложении, которое я сейчас разрабатываю, я использую следующее, которое, я считаю, будет делать то, что вам нужно
final String format = Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);
if (TextUtils.isEmpty(format)) {
dateFormat = android.text.format.DateFormat.getMediumDateFormat(getApplicationContext());
} else {
dateFormat = new SimpleDateFormat(format);
}
Ответ 2
DateFormat.getDateFormat
работает так, как ожидалось. Он возвращает один из трех возможных форматов:
-
MM/DD/YYYY
-
DD/MM/YYYY
-
YYYY/MM/DD
Я не уверен, как вы настроили формат "Sat, 31 Dec 2011", но, насколько я знаю, Android позволяет установить только один из трех указанных форматов (Настройки → Дата и время → Выбрать формат даты).
![enter image description here]()
Ответ 3
Попробуйте это
Date inDate = inFormat.parse(in);
DateFormat outFormat = android.text.format.DateFormat.getDateFormat(context);
out=outFormat.format(inDate);