java获取月份_date-Java从整数获取月份字符串

date-Java从整数获取月份字符串

是否有更好的方法来压缩此方法,即通过避免切换情况来降低圈复杂度?

String monthString;

switch (month) {

case 1: monthString = "January"; break;

case 2: monthString = "February"; break;

case 3: monthString = "March"; break;

case 4: monthString = "April"; break;

case 5: monthString = "May"; break;

case 6: monthString = "June"; break;

case 7: monthString = "July"; break;

case 8: monthString = "August"; break;

case 9: monthString = "September"; break;

case 10: monthString = "October"; break;

case 11: monthString = "November"; break;

case 12: monthString = "December"; break;

default: monthString = "Invalid month"; break;

}

System.out.println(monthString);

shinynewbike asked 2020-07-22T14:57:58Z

6个解决方案

102 votes

尝试:

import java.text.DateFormatSymbols;

monthString = new DateFormatSymbols().getMonths()[month-1];

另外,您可以使用SimpleDateFormat:

import java.text.SimpleDateFormat;

System.out.println(new SimpleDateFormat("MMMM").format(date));

(您必须在Date对象中加上月份的日期才能使用第二个选项)。

Flash answered 2020-07-22T14:58:43Z

17 votes

getDisplayName枚举

您可以使用getDisplayName枚举。 该枚举定义为Java 8及更高版本中内置的新java.time框架的一部分。

int monthNumber = 10;

Month.of(monthNumber).name();

输出为:

十月

本地化

通过在同一枚举上调用getDisplayName,将语言本地化为英语以外的语言。

String output = Month.OCTOBER.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH );

输出:

十月

Abhishek Shah answered 2020-07-22T14:59:33Z

8 votes

取一个包含月份名称的数组。

String[] str = {"January",

"February",

"March",

"April",

"May",

"June",

"July",

"August",

"September",

"October",

"November",

"December"};

然后您想使用一个月的地方,如下所示:

if(i

monthString = str[i-1];

else

monthString = "Invalid month";

Harry Joy answered 2020-07-22T14:59:57Z

3 votes

您可以有一个字符串数组,并可以按索引访问。

String months[] = {"January", "February", "March", "April",

"May", "June", "July", "August", "September",

"October", "November", "December"};

cMinor answered 2020-07-22T15:00:17Z

2 votes

已经提到过了,但是这是将代码放置在方法中的一种方法:

public static String getMonthName(int monthIndex) {

return new DateFormatSymbols().getMonths()[monthIndex].toString();

}

或者,如果您想创建比ArrayIndexOutOfBoundsException更好的错误:

public static String getMonthName(int monthIndex) {

//since this is zero based, 11 = December

if (monthIndex < 0 || monthIndex > 11 ) {

throw new IllegalArgumentException(monthIndex + " is not a valid month index.");

}

return new DateFormatSymbols().getMonths()[monthIndex].toString();

}

AS4noob answered 2020-07-22T15:00:42Z

0 votes

import java.time.Month;

Month exemple = new Month.of(12);

//---return a Month object with value of December---

String month = exemple.toString();

//---if you want to convert Month to String---

Murillo Tavares answered 2020-07-22T15:00:57Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值