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

Add*_*ddi 5 android locale date

我想显示一个提示应该如何输入日期.对德国来说可能看起来像

"以这种格式输入日期:dd.mm.yyy"

对于美国

"以这种格式输入日期:mm/dd/yyyy"

我明白了

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
Run Code Online (Sandbox Code Playgroud)

我可以将日期转换为与用户的语言环境匹配的格式.但是如何获得提示的日/月/年字符串?

当然,我也希望类似的东西也有时间的暗示.

谢谢你的任何建议.

sam*_*gak 5

您可以使用DateFormat的getBestDateTimePattern方法:

String datePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "ddMMyyyy");
String timePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "HHmmss");
Run Code Online (Sandbox Code Playgroud)

注意:假定时间为 24 小时格式。您可能希望在呈现给用户之前全部转换为大写或小写。


WOR*_*MSS 3

String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm
Run Code Online (Sandbox Code Playgroud)

我知道你只是要求约会,但这已经是我所能得到的最接近的日期了。内部规则是localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT)这样的,所以我想只要不存在日期格式带有空格的语言环境,您就可以将字符串拆分为空格