int monthNumber = calendar.get(Calendar.MONTH)
を知っているときに月の名前を取得するためのライナーが1つありますか?または、最も簡単な方法は何ですか?
この方法もあります。
String getMonthForInt(int num) {
String month = "wrong";
DateFormatSymbols dfs = new DateFormatSymbols();
String[] months = dfs.getMonths();
if (num >= 0 && num <= 11 ) {
month = months[num];
}
return month;
}
SimpleDateFormat (を使用して実現できます。これは、日付と時刻をフォーマットするためのものです。
Calendar cal = Calendar.getInstance();
System.out.println(new SimpleDateFormat("MMM").format(cal.getTime()));
これと同じくらい簡単
mCalendar = Calendar.getInstance();
String month = mCalendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());
これは、クラスプロジェクトのために思いついたソリューションです。
public static String theMonth(int month){
String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
return monthNames[month];
}
渡す番号は、Calendar.MONTH
呼び出しから取得されます。
多言語インターフェースを使用している場合、getDisplayNameを使用して、言語の表示を制御して月の名前を表示できます。
「シリア」のような特定の国で英語、フランス語、アラビア語、アラビア語で月名を表示する例を次に示します。
Calendar c = Calendar.getInstance();
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.FRANCE ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar") ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar", "SY") ) );
System.out.println(c.getTime().toString());
結果は次のとおりです。
January
janvier
يناير
كانون الثاني
Sat Jan 17 19:31:30 EET 2015
SimpleDateFormat dateFormat = new SimpleDateFormat( "LLLL", Locale.getDefault() );
dateFormat.format( date );
一部の言語(ロシア語など)では、これがスタンドアロンの月名を取得する唯一の正しい方法です。
これは、1月にgetDisplayName
またはCalendar
からDateFormatSymbols
を使用した場合に得られるものです。
января(完全な日付文字列に適しています: "10января、2014")
ただし、スタンドアロンの月名の場合は、次のようになります。
январь
Joda-Time を使用してみてください。使用するには、はるかに優れた日時APIです(また、January
は1月を意味します。これは、0-based
インデックスを月に使用するCalendarとは異なります)。
AbstractDateTime#toString( pattern )
メソッドを使用して、指定した形式で日付をフォーマットできます。
DateTime date = DateTime.now();
String month = date.toString("MMM");
特定の月番号の月名が必要な場合は、次のようにできます。
int month = 3;
String monthName = DateTime.now().withMonthOfYear(month).toString("MMM");
上記のアプローチでは、JVMの現在のデフォルトロケールを月名の言語に使用します。代わりにLocaleオブジェクトを指定する必要があります。
String month = date.toString( "MMM", Locale.CANADA_FRENCH );
Month::getDisplayName
Java 8以降、 Month
enumを使用します。 getDisplayName
メソッドは、月の名前を自動的にローカライズします。
パス:
例:
public static String getMonthStandaloneName(Month month) {
return month.getDisplayName(
TextStyle.FULL_STANDALONE,
Locale.getDefault()
);
}
これは古い質問かもしれませんが、インデックスを知っている月の名前を取得するための1つのライナーとして、
String month = new DateFormatSymbols().getMonths()[monthNumber - 1];
または短縮名の場合
String month = new DateFormatSymbols().getShortMonths()[monthNumber - 1];
monthNumber
は1からカウントを開始しますが、上記のメソッドはいずれも配列を返すため、0からカウントを開始する必要があることに注意してください。
このコードには言語サポートがあります。 Androidアプリで使用していました。
String[] mons = new DateFormatSymbols().getShortMonths();//Jan,Feb,Mar,...
String[] months = new DateFormatSymbols().getMonths();//January,Februaty,March,...
これは私のために働く:
String getMonthName(int monthNumber) {
String[] months = new DateFormatSymbols().getMonths();
int n = monthNumber-1;
return (n >= 0 && n <= 11) ? months[n] : "wrong number";
}
"September"
を1行で返すには:
String month = getMonthName(9);
次のように1行で取得できます:String monthName = new DataFormatSymbols.getMonths()[cal.get(Calendar.MONTH)]
片道:
Java(Java.time.Month
)にMonth
APIがあります。 Month.of(month);
を使用して取得できます
ここで、Month
は数値としてインデックス付けされるため、Month.JANUARY
で提供するか、上記のAPIで1、2、3、4などのインデックスを提供できます。
2番目の方法:
ZonedDateTime.now().getMonth();
これはJava.time.ZonedDateTime
で利用可能です。
このトピックの応答に基づいてkotlin拡張機能を作成し、DateFormatSymbolsの回答を使用してローカライズされた応答を取得します。
fun Date.toCalendar(): Calendar {
val calendar = Calendar.getInstance()
calendar.time = this
return calendar
}
fun Date.getMonthName(): String {
val month = toCalendar()[Calendar.MONTH]
val dfs = DateFormatSymbols()
val months = dfs.months
return months[month]
}
私はこれをはるかに簡単に見つけました( https://docs.Oracle.com/javase/tutorial/datetime/iso/enum.html )
private void getCalendarMonth(Date date) {
Calendar calendar.setTime(date);
Month month = Month.of(calendar.get(Calendar.MONTH));
Locale locale = Locale.getDefault();
System.out.println(month.getDisplayName(TextStyle.FULL, locale));
System.out.println(month.getDisplayName(TextStyle.NARROW, locale));
System.out.println(month.getDisplayName(TextStyle.SHORT, locale));
}
DateFormat date = new SimpleDateFormat("dd/MMM/yyyy");
Date date1 = new Date();
System.out.println(date.format(date1));
月の英語名を返します。 04は、APRILなどを返します。
String englishMonth (int month){
return Month.of(month);
}
これは私のために働いた
import Java.text.SimpleDateFormat;
import Java.util.Calendar;
Calendar cal = Calendar.getInstance();
String currentdate=new SimpleDateFormat("dd-MMM").format(cal.getTime());