online joda examples example java time jodatime

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.

Reference


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);