如何根据语言环境显示日期格式?
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
我想显示应如何输入日期的提示。 对于德国,它可能看起来像
"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