如何根据语言环境显示日期格式?

How to display date format according to locale?

我想显示应如何输入日期的提示。 对于德国,它可能看起来像

"Enter date in this format: dd.mm.yyy"

对于美国

"Enter date in this format: mm/dd/yyyy"

我明白

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);

我可以将日期转换为与用户区域设置相匹配的格式。 但是我如何获得提示的 day/month/year 字符串?

当然,我也想要类似的东西,并提示时间。

感谢您的任何建议。

用日期选择器让你约会会不会更容易:http://developer.android.com/guide/topics/ui/controls/pickers.html#DatePicker

如果没有,再看看这个:

您可以使用 DateFormat 的 getBestDateTimePattern 方法:

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);
String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm

我知道您只是要日期,但这是我能得到的最接近的日期。 内部规则是 localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT) 所以我想只要没有日期格式带有 space 的语言环境,您就可以将字符串拆分为 space