【问题标题】:How to display date format according to locale?如何根据语言环境显示日期格式?
【发布时间】:2015-05-22 11:28:51
【问题描述】:

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

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

对于美国

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

我明白了

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);

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

当然,我也想要类似的东西,带有时间提示。

感谢您的任何建议。

【问题讨论】:

    标签: android date locale


    【解决方案1】:

    可以使用DateFormat的getBestDateTimePattern方法:

    String datePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "ddMMyyyy");
    String timePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "HHmmss");
    

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

    【讨论】:

    【解决方案2】:
    String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm
    

    我知道你问的只是日期,但这是我能得到的最接近的日期。 内部规则是localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT) 所以我猜只要没有带有日期格式的语言环境,您可以将字符串拆分为空格

    【讨论】:

    • 是的。我必须看看,除了结果字符串中的空白之外,还能做什么。谢谢。
    • 我相信 samgak 的解决方案比我自己的要好。但正如您在 cmets 中所说,它是 API 18+
    【解决方案3】:

    试试这个:

        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);
    

    【讨论】:

      【解决方案4】:

      用日期选择器让你约会不是更容易吗:http://developer.android.com/guide/topics/ui/controls/pickers.html#DatePicker

      如果没有,那么看看这个:https://stackoverflow.com/a/11093572/3965178

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多