Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android中月份编号中的月份名称_Java_Android_Datepicker_Monthcalendar - Fatal编程技术网

Java android中月份编号中的月份名称

Java android中月份编号中的月份名称,java,android,datepicker,monthcalendar,Java,Android,Datepicker,Monthcalendar,我在将月号转换为月名时遇到问题,即如果月号1或2只返回三月。但是对于1,它应该在2月返回,对吗?以前我有一天也遇到过同样的问题,但第二天我就不知道了;怎么会?但今天又是这样,我需要一些帮助来修复它 public static String getMonthShortName(int monthNumber) { String monthName = ""; if (monthNumber >= 0 && monthNumber < 12)

我在将月号转换为月名时遇到问题,即如果月号1或2只返回三月。但是对于1,它应该在2月返回,对吗?以前我有一天也遇到过同样的问题,但第二天我就不知道了;怎么会?但今天又是这样,我需要一些帮助来修复它

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;
}

它只在三月回归。但对于其他数字来说,效果很好。你们中有谁能帮我解决这个问题吗?

这个问题之所以出现,是因为二月不到30天

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

返回值

Sun Mar 02 14:52:28 CET 2014
您应该在设置月份之前添加代码:

calendar.set(Calendar.DAY_OF_MONTH, 1);

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

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);
这里的输出是科特林的六月

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)
    }

谢谢你

试试这个链接,你应该把它也标记为java问题……这是正确的解决方案,我在我的应用程序中使用了类似的东西。谢谢。。。我的代码也是这样的。。。如果我给5它将工作良好的问题与1和2只。。。在过去的3个月里,我一直在使用我的代码。我想这是它第二次显示1和2的错误结果。请您将系统时间设置为3月31日,然后调用代码序列,好吗?你可能会有一个惊喜。。。
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);
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)
    }