Android 如何根据区域设置显示日期格式?

Android 如何根据区域设置显示日期格式?,android,date,locale,Android,Date,Locale,我想显示如何输入日期的提示。 对德国来说,这可能看起来像 “按以下格式输入日期:dd.mm.yyy” 对美国来说 “按以下格式输入日期:mm/dd/yyyy” 我明白这一点 DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context); 我可以将日期转换为与用户区域设置匹配的格式。 但是,我如何获得提示的日/月/年字符串 当然,我也会想要类似的东西,同时给时间一个提示 谢谢您的建议。让您与日期选择器约

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

“按以下格式输入日期:dd.mm.yyy”

对美国来说

“按以下格式输入日期:mm/dd/yyyy”

我明白这一点

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
我可以将日期转换为与用户区域设置匹配的格式。 但是,我如何获得提示的日/月/年字符串

当然,我也会想要类似的东西,同时给时间一个提示


谢谢您的建议。

让您与日期选择器约会不是更容易吗:

如果没有,请查看以下内容:

您可以使用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);
我知道你要求的只是日期,但这是我能得到的最接近的。
内部规则是
localeData.getDateFormat(SHORT)+“+localeData.getTimeFormat(SHORT)
,所以我想只要没有一个区域设置有带空格的日期格式,就可以在空格上拆分字符串

就像一个符咒一样工作,不幸的是只能从API级别18(,java.lang.string))开始。看来我需要采用@Worms建议的解决方案,这正是我想要的!谢谢工作。我必须看看,如何处理结果字符串中可能多于空白的内容。谢谢。我相信桑加克解决方案比我自己的好。但正如你在评论中所说,这是API 18+
String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm