Строка даты от 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()
возвращает предпочтительный языковой стандарт пользователя, вы можете использовать его для форматирования всех ваших локализованных значений (даты, времени, валюты и т. д.) и знать, что вы предоставляете пользователю формат, который он выбрал.