如何在Android系统的语言中获取星期日,星期一....和星期六字符串?

时间:2014-09-26 14:34:13

标签: android

我想得到星期日,星期一,星期二,星期三,星期四,星期五和星期六系统语言环境的字符串。我有代码:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
String SundayString = sdf.format(cal.getTime());

此代码可以获得星期日。但是我必须做七次以获得我需要的所有字符串。

我考虑下面的另一个代码:

Calendar cal = Calendar.getInstance();
String[] weekString = new String[7]
for(int i=1;i<=7;++i){
    cal.set(Calendar.DAY_OF_WEEK, i);
    SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
    weekString[i-1] = sdf.format(cal.getTime());
}

这是工作,因为SUNDAY~SATURDAY是1~7,但我认为这不是一个好的代码,因为如果Android改变常量变量的定义,这个代码将无法很好地执行。

还有其他好的和优雅的方法吗?

3 个答案:

答案 0 :(得分:4)

您可以使用DateFormatSymbols

DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(context.getResources().getConfiguration().locale);
Log.i("DAYS", " " + Arrays.asList(dateFormatSymbols. getWeekdays());

答案 1 :(得分:0)

我不知道你支持多少种语言,但如果只有少数你可以在values文件夹中添加实际的字符串。

对于西班牙语,例如

在values-es中你会有一个字符串数组

例如,在strings.xml中:

<string-array name="days_of_the_week">
    <item>Monday in Spanish</item>
    <item>Tuesday in Spanish</item>
</string-array>

String [] days = getResources()。getStringArray(R.array.days_of_the_week)

然后从数组中获取它们

答案 2 :(得分:0)