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