我正在修改日历,有时我得到了月份编号,我需要将其与月份名称进行比较。
当然,我可以创建一个 switch 语句,但我想知道是否可以从数字中获取月份名称,反之亦然来执行条件。
谢谢!
如果将
int
数字与 Calendar
的月份常量(即 JANUARY
、AUGUST
等)进行比较,则使用数字代替名称不会有问题。
如果您需要的话,这里有一种获取实际名称的方法:
String getMonthForInt(int m) {
DateFormatSymbols dfs = new DateFormatSymbols();
String[] months = dfs.getMonths();
if (m >= 0 && m <= 11 ) {
return months[m];
}
return null;
}
取自此处。
将月份名称存储在
List<String>
中,并使用 list.indexOf(monthName)
查找其索引(从 0 开始的数字),并使用 list.get(index)
获取给定月份编号的名称(仍然从 0 开始)。
java.time.Month
Month
。
该枚举具有漂亮的方法,包括生成月份名称的本地化字符串。指定
Locale
以确定本地化中使用的人类语言和文化规范。
与存在严重缺陷的遗留日期时间类相比,java.time使用合理的编号。因此,1 月至 12 月的月份为 1-12。
Month month = Month.of ( 11 ) ; // November.
getDisplayName
生成本地化文本。
Locale locale = Locale.of( "fr" , "CA" ) ; // French language, Canada cultural norms.
String output = month.getDisplayName ( TextStyle.FULL_STANDALONE , locale ) ;