我有一个问题,将月份数转换为月份名称,即月份编号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月)。但对于其他数字,它的工作正常。任何人都可以帮助我吗?
答案 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)
}
谢谢