在android中获取当前月份的全名

时间:2016-07-02 10:04:56

标签: android

在我的项目中,我有一个用于选择月份的微调器,我想显示当前月份作为默认选择。我在string.xml中有字符串数组。

<string-array name="Months">
        <item>January</item>
        <item>February</item>
        <item>March</item>
        <item>April</item>
        <item>May</item>
        <item>June</item>
        <item>July</item>
        <item>August</item>
        <item>September</item>
        <item>October</item>
        <item>November</item>
        <item>December</item>
    </string-array>

在MainActivity中,我将适配器设置为微调器,

ArrayAdapter<CharSequence> monthAdapter = ArrayAdapter
                .createFromResource(this, R.array.Months, R.layout.spinner_item);
        monthAdapter.setDropDownViewResource(R.layout.spinner_item);
        spnMonth.setAdapter(monthAdapter);
        spnMonth.setSelection(Util.setCurrentMonthSpinner(context));

Util.java我使用这两个函数,这些函数是静态的,因为函数在很多活动中都有用。

public static int setCurrentMonthSpinner (Context context) {
        String[] months = context.getResources().getStringArray(R.array.Months);
        for (int i = 0; i < months.length; i++) {
            String mnth = Util.getCurrentMonth();
            if (months[i].equals(mnth))
                return i;
        }
        return 0;
    } 

和第二种方法是......

public static String getCurrentMonth () {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat month_date = new SimpleDateFormat("MMMMMM");

        return month_date.format(cal.getTime());
    }

方法getCurrentMonth返回当前月份名称,如Jan或Feb,但我想获得返回String,如1月或2月。引导我......

2 个答案:

答案 0 :(得分:1)

尝试向您的SimpleDateFormat添加区域设置,如下所示:

SimpleDateFormat month_date = new SimpleDateFormat("MMMM", Locale.US);

答案 1 :(得分:1)

Calendar c = Calendar.getInstance();

int month = 
    c.get(Calendar.MONTH);
switch(month){
case 0:
    return R.string.january;
    break;

}

请注意,此方法从索引0开始,以索引11结束,其中0表示1月,11表示12月。 https://developer.android.com/reference/java/util/Calendar.html