Как отобразить формат даты в соответствии с локалью?
Я хочу показать подсказку, как нужно вводить дату. Для Германии это может выглядеть так
"Введите дату в этом формате: дд.мм.ггг"
Для США
"Введите дату в этом формате: мм / дд / гггг"
Я понимаю что с
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
Я могу преобразовать дату в формат, соответствующий локали пользователя. Но как я могу получить строку день / месяц / год для подсказки?
И, конечно же, я хотел бы, чтобы подобное было с намеком на время.
Спасибо за любые предложения.
4 ответа
String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm
Я знаю, что вы спрашивали только о дате, но это было как можно ближе. Внутреннее правило localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT)
так что я думаю, что до тех пор, пока не будет локали с форматом даты с пробелами, вы можете просто разбить строку на пробел
Вы можете использовать метод getBestDateTimePattern DateFormat:
String datePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "ddMMyyyy");
String timePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "HHmmss");
примечание: предполагает 24-часовой формат времени. Вы можете преобразовать все в верхний или нижний регистр перед представлением пользователю.
Попробуй это:
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
Calendar now = new GregorianCalendar(year, month, day, hour, minute, second);
long time = now.getTimeInMillis();
Date date = new Date(time);
String timeSet = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date);
Разве не было бы проще назначить свидание с помощью средства выбора даты: http://developer.android.com/guide/topics/ui/controls/pickers.html
Если нет, то взгляните на это: /questions/22436323/formatirovanie-datyi-na-osnove-lokali-polzovatelya-na-android/22436333#22436333