我无法解决这个问题。
我写了这段代码:
public static String getMonthName(int year, int month, int day){
Locale locale = Locale.getDefault();
SimpleDateFormat sdf = new SimpleDateFormat("MMMM",locale);
Date date = new Date();
date.setDate(day);
date.setMonth(month);
date.setYear(year);
return sdf.format(date);
}
效果很好但是当月份= 1(即2月份)时,月份名称是3月而不是2月!为什么?
此代码适用于所有其他日期和月份......
还有另一种方法可以获得翻译的月份名称吗?
请帮助我....
答案 0 :(得分:4)
根据您对函数的调用方式(例如,使用当前日期为2月29日(2013年不存在)),您可以自动增加月份。
我建议使用这个函数来避免这个问题:
public static String getMonthName(int month){
Locale locale = Locale.getDefault();
SimpleDateFormat sdf = new SimpleDateFormat("MMMM",locale);
Date date = new Date();
date.setDate(1);
date.setMonth(month);
date.setYear(2012);
return sdf.format(date);
}
答案 1 :(得分:0)
这是因为月份从零索引开始,所以你应该使用这个逻辑
if(day >0)
{
day =day -1;
}