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;
}
如果月1或2
在这个说法
monthName = simpleDateFormat.format(calendar.getTime());
仅返回
(3月)。但是对于其他数字,它的工作正常。任何一个可以帮助我吗?
返回正确的月份名称的遵守代码。
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);
在这里输出为六月
出现问题是因为2月不到30天。
,例如,今天运行此(2014年4月30日):
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, 1);
System.out.println(calendar.getTime());
返回
您应该在设置月份之前添加代码:
calendar.set(Calendar.DAY_OF_MONTH, 1);
Kotlin
中
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.time.Month.of ( monthNumber ) // Get `Month` enum object for month number, 1-12 for January-December.
.getDisplayName ( // Generate localized text for name of this month.
TextStyle.FULL_STANDALONE , // Month name spelled out, not abbreviated.
Locale.of ( "en" , "US" ) // English language, United States cultural norms.
) // Returns string with localized text such as “January”.
java.time.Month.getDisplayName
java.Time
课程。切勿使用Date
SimpleDateFormat
等。
Aandroid API级别26+具有的实现。对于早期的Android,最新的工具通过apidesugaring
。 代表一个月,使用
Month
枚举。获取您的月号的枚举对象。与旧版日期时间类相反,Java.Time
使用Sane编号:1月至12月1-12
Month month = Month.of ( monthNumber ) ; // 1-12 for January-December.
代理文本是使用Month#getDisplayName
.
TextStyle
对象,以指定您想要的时间或缩写。
通过ALocale
确定要在本地化中使用的人类语言和文化规范。对于具有美国文化规范的英语语言,请使用
en
&US
。
TextStyle style = TextStyle.FULL_STANDALONE ;
Locale locale = Locale.of ( "fr" , "CA" ) ; // French language, Canada cultural norms.
// In earlier Java versions: Locale locale = Locale.forLanguageTag ( "fr-CA" ) ;
String output = month.getDisplayName ( style , locale ) ;