Строка даты от GregorianCalendar на основе локали

Я создаю приложение для Android. У меня есть переменная GregorianCalendar. Я хочу получить дату из этой переменной как MM-дд-гггг, если языковой стандарт - США, или дд-мм-гггг, если языковой стандарт - ЕС, и так далее. Я не хочу жестко кодировать каждую строку локали, я хочу, чтобы она зависела от локали телефона.

Проблема в том, что, просмотрев десятки похожих вопросов, я так и не смог заставить это работать. Я предполагаю, что это две или три строки кода, возможно, с использованием SimpleDateFormat или GregorianCalendar.get() или getDisplayName().

Спасибо за помощь.

3 ответа

Решение

Попробуй это

    GregorianCalendar gc = ...
    String str = DateFormat.getDateInstance(DateFormat.SHORT).format(gc.getTime());

Кстати, формат даты по умолчанию (КОРОТКИЙ) для США dd/MM/yy например, 30/05/13

Ты пробовал это

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourcalender.getTime());

с вашим календарем - переменная GregorianCalendar

А еще лучше, почему бы не использовать собственный предпочитаемый формат даты? Locale.getLocale() возвращает предпочтительный языковой стандарт пользователя, вы можете использовать его для форматирования всех ваших локализованных значений (даты, времени, валюты и т. д.) и знать, что вы предоставляете пользователю формат, который он выбрал.

Другие вопросы по тегам