Подтвердить что ты не робот

Как получить выбранный пользователем формат даты в 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 (мм/дд/гггг). Но посмотрите формат даты, который я выбрал на телефоне. Как я могу получить точный формат?

4b9b3361

Ответ 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);