java - examples - ¿Cómo obtener nombres de meses cortos en Joda Time?
jodatime format date example (5)
¿Alguien sabe si hay un método en Joda Time o Java que toma un int o un String como argumento, por ejemplo, 4 o "4" y devuelve el nombre del mes en formato corto, es decir, JAN para enero?
Supongo que los nombres de meses largos se pueden truncar y convertir a mayúsculas.
Creo que "MMM" le dará el nombre del mes en Joda ... pero primero tendría que crear un formateador adecuado. Aquí hay un código de muestra que imprime "Apr" en mi caja. (Puede especificar la configuración regional relevante, por supuesto).
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);
}
}
En respuesta a la respuesta de Jon, puede simplificarlo aún más utilizando el acceso directo de Joda para las clases de fecha y hora.
String month = date.toString("MMM");
Mi última respuesta sobre el uso de java.util.Calendar
para esto fue un poco más complicado de lo que tenía que ser. Aquí hay una versión más simple, aunque todavía requiere Java 6 o más reciente.
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());
}
}
Podemos hacer lo siguiente:
DateTime dt = new DateTime(); // current time
String monthStr = dt.month().getAsShortText(); // gets the month name
También puede usar el método getAsText()
para el nombre del mes largo.
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);