Ответ 1
В ответ на ответ Джона вы можете упростить это, используя прямой доступ Joda для классов datetime.
String month = date.toString("MMM");
Кто-нибудь знает, есть ли метод в Joda Time или Java, который принимает либо int, либо String в качестве аргумента, например. 4 или "4" и возвращает название месяца в коротком формате, т.е. JAN за январь?
Я предполагаю, что имена длинных месяцев могут быть усечены и преобразованы в верхний регистр.
В ответ на ответ Джона вы можете упростить это, используя прямой доступ Joda для классов datetime.
String month = date.toString("MMM");
Я считаю, что "МММ" даст название месяца в Джоде... но сначала нужно создать соответствующий форматир. Вот пример кода, который печатает "Апр" на моей коробке. (Конечно, вы можете указать соответствующий язык.)
import org.joda.time.*;
import org.joda.time.format.*;
public class Test
{
public static void main(String[] args)
{
// Year and day will be ignored
LocalDate date = new LocalDate(2010, 4, 1);
DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM");
String month = formatter.print(date);
System.out.println(month);
}
}
Мы можем сделать следующее:
DateTime dt = new DateTime(); // current time
String monthStr = dt.month().getAsShortText(); // gets the month name
Также вы можете использовать метод getAsText()
для длинного имени месяца.
LocalDateTime fecha_sistema = LocalDateTime.now();
// return month value betwen 1 to 12
int month = fecha_sistema.getMonthValue();
// return month name
String mes = fecha_sistema.getMonth().name();
System.out.println("Month" + mes + "/ " + month);
Мой последний ответ об использовании java.util.Calendar
для этого был немного сложнее, чем нужно. Здесь более простая версия, хотя для нее по-прежнему требуется Java 6 или новее.
import java.util.Calendar;
import java.util.Locale;
public class Test
{
public static void main(String[] args)
{
// Sample usage.
// Should be "Apr" in English languages
String month = getMonthNameShort(4);
System.out.println(month);
}
/**
* @param month Month number
* @return The short month name
*/
public static String getMonthNameShort(int month)
{
Calendar cal = Calendar.getInstance();
// Calendar numbers months from 0
cal.set(Calendar.MONTH, month - 1);
return cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault());
}
}