检索月份名称和月份编号

问题描述 投票:0回答:3

我正在修改日历,有时我得到了月份编号,我需要将其与月份名称进行比较。

当然,我可以创建一个 switch 语句,但我想知道是否可以从数字中获取月份名称,反之亦然来执行条件。

谢谢!

java android
3个回答
3
投票

如果将

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

取自此处


2
投票

将月份名称存储在

List<String>
中,并使用
list.indexOf(monthName)
查找其索引(从 0 开始的数字),并使用
list.get(index)
获取给定月份编号的名称(仍然从 0 开始)。


0
投票

java.time.Month

现代 Java 提供了枚举

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 ) ;
© www.soinside.com 2019 - 2024. All rights reserved.