android中月份数的月份名称

时间:2014-04-30 12:44:36

标签: java android datepicker monthcalendar

我有一个问题,将月份数转换为月份名称,即月份编号1或2仅返回3月份。但对于1,它应该返回2月对吗?以前我有同样的问题一天,但第二天它自动工作,我不喜欢?如何?但今天再次显示这样我需要一些帮助来 FIX

public static String getMonthShortName(int monthNumber) {
    String monthName = "";

    if (monthNumber >= 0 && monthNumber < 12)
        try {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.MONTH, monthNumber);

            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM");
            //simpleDateFormat.setCalendar(calendar);
            monthName = simpleDateFormat.format(calendar.getTime());
        } catch (Exception e) {
            if (e != null)
                e.printStackTrace();
        }
    return monthName;
}

如果monthNumber为1或2 在这个声明中

monthName = simpleDateFormat.format(calendar.getTime());

仅返回 3月(3月)。但对于其他数字,它的工作正常。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:6)

以下代码返回正确的月份名称。

Calendar cal=Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMMM");
int monthnum=5;
cal.set(Calendar.MONTH,monthnum);
String month_name = month_date.format(cal.getTime());

Log.e("",""+month_name);

此处的输出为六月

答案 1 :(得分:3)

问题出现是因为二月不到30天。

例如,今天(2014年4月30日)运行:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, 1);
System.out.println(calendar.getTime());

返回

Sun Mar 02 14:52:28 CET 2014

您应该在设置月份之前添加代码:

calendar.set(Calendar.DAY_OF_MONTH, 1);

答案 2 :(得分:1)

在科特林中

fun getMonthByNumber(monthnum:Int):String {
        val c = Calendar.getInstance()
        val month_date = SimpleDateFormat("MMMM")
        c[Calendar.MONTH] = monthnum-1
        return month_date.format(c.time)
    }

谢谢