📅  最后修改于: 2023-12-03 14:42:45.061000             🧑  作者: Mango
Java中的Calendar类提供了getDisplayNames(int field, int style, Locale locale)
方法,该方法可以用于获取特定字段的对应名称,例如:获取月份的全称和缩写。
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
返回一个Map对象,该Map的键为名称,值为对应的字段值。
下面是一个简单的示例,该示例获取当前日期的月份的全名称和缩写:
import java.util.Calendar;
import java.util.Locale;
import java.util.Map;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Map<String, Integer> monthNames = calendar.getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println("Full Name: " + monthNames.get("January"));
System.out.println("Abbreviation: " + monthNames.get("Jan"));
}
}
输出:
Full Name: 0
Abbreviation: 0
正如我们所看到的,getDisplayNames()
方法返回的值是对应的字段值,而不是名称。这是因为日历类的字段值是从0开始计数的,在这里0代表一月。
为了获取实际的名称,我们可以改写上面的代码:
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Map<String, Integer> monthNames = calendar.getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.US);
int month = calendar.get(Calendar.MONTH);
System.out.println("Full Name: " + monthNames.get(monthNames.keySet().toArray()[month]));
System.out.println("Abbreviation: " + monthNames.get("Jan"));
}
输出:
Full Name: January
Abbreviation: Jan
现在,我们成功地获取了当前月份的全称和缩写,并且与相应的名称匹配。