Как отобразить формат даты в соответствии с локалью?

Я хочу показать подсказку, как нужно вводить дату. Для Германии это может выглядеть так

"Введите дату в этом формате: дд.мм.ггг"

Для США

"Введите дату в этом формате: мм / дд / гггг"

Я понимаю что с

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

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