java android DateFormat忽略修改的语言环境设置

时间:2013-10-31 09:38:29

标签: java android date date-format simpledateformat

在我显示日期的应用中,我使用以下代码:

public static String format (Date date) {
    DateFormat formater = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
    return formater.format(date);
}

在我的Android设备中,默认区域日期格式为"Regional (31.10.2013)",然后我的应用按预期工作。

但是我可以将我的Android设置日期格式更改为ex。 "2013.10.31"但很遗憾,我的应用似乎忽略了这些设置,仍然以默认格式"31.10.2013"显示日期。为什么?如何设置日期格式以考虑这些Android设置?

1 个答案:

答案 0 :(得分:2)

当您使用DateFormat.getDateTimeInstance时,此功能正常。
根据API doc -

  

获取日期/时间格式化程序,其中包含默认语言环境的给定日期和时间格式样式。

对于您的情况,最好使用SimpleDateFormat并自行指定格式。例如:

private String printStandardDate(Date date) {
    return new SimpleDateFormat("dd/MM/yy").format(date);
}

您可以这样检查 - Using DateFormat.getDateTimeInstance().format(date);

更新:请你检查一下 -

public static String format (Date date) {
  DateFormat dateFormat = 
         android.text.format.DateFormat.getDateFormat(getApplicationContext());
    return dateFormat.format(date);
}