我想显示一个提示应该如何输入日期。 德国可能看起来像
“以此格式输入日期:dd.mm.yyy”
对于美国
“以此格式输入日期:mm / dd / yyyy”
我理解
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
我可以将日期转换为与用户的语言环境匹配的格式。 但是,如何获得提示的日/月/年字符串?
当然,我也希望类似的东西也有时间的暗示。
感谢您的任何建议。
答案 0 :(得分:4)
您可以使用DateFormat的getBestDateTimePattern方法:
String datePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "ddMMyyyy");
String timePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "HHmmss");
注意:假定时间为24小时格式。您可能希望在呈现给用户之前转换为所有大写或小写。
答案 1 :(得分:3)
String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm
我知道你要求的只是日期,但这是我能得到的尽可能接近。
内部规则是localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT)
所以我想只要不存在具有空格的日期格式的区域设置,就可以在空格上拆分字符串
答案 2 :(得分:2)
试试这个:
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);
答案 3 :(得分:1)