2013-10-31 33 views
1

在我的应用程序,用于显示我用下面的代码日期:Java的Android的日期格式忽略修改的区域设置

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

在我的Android设备作为默认的区域日期格式我有"Regional (31.10.2013)",然后我的应用程序工作正常。

但是我可以在我的Android设置日期格式更改为前。 "2013.10.31",然后不幸的是我的应用程序似乎忽略了这些设置,并仍然以默认格式"31.10.2013"显示日期。为什么?如何格式化日期以考虑这些Android设置?

回答

2

这适用于您正在使用DateFormat.getDateTimeInstance
根据API doc -

获取与给定日期和时间格式样式默认语言环境日期/时间格式。

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

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

可以使检查这一点 - Using DateFormat.getDateTimeInstance().format(date);

UPDATE:你可以请这个 -

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

对不起的人,我不想设置固定的日期格式。我会应用Android用户在设备设置中设置的格式。因此不能考虑任何固定格式“dd/MM/yy”。 – user2707175

+0

为什么您认为我不根据文档使用getDateTimeInstance?我根据文档使用它(至少在我的理解中),我不想应用任何固定的区域设置,因为我想使用Android设备设置中的设置)。 – user2707175

+0

@ user2707175 - 您可以检查更新吗? – Yup

相关问题