我想得到星期日,星期一,星期二,星期三,星期四,星期五和星期六系统语言环境的字符串。我有代码:
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改变常量变量的定义,这个代码将无法很好地执行。
还有其他好的和优雅的方法吗?
答案 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)
您可以使用DateFormatSymbols,请参阅http://developer.android.com/reference/java/text/DateFormatSymbols.html#getWeekdays()