java - examples - Desde el día de la semana número obtener el nombre del día con Joda Time
jodatime current time (3)
Tiempo de joda
Al menos esto funciona, aunque lo considero no tan agradable:
LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(DateTimeFormat.forPattern("EEEE").print(date));
Desafortunadamente, Joda-Time no ofrece una enumeración para el día de la semana (java.time lo hace). No he encontrado rápidamente otra manera en la gran API. Tal vez algunos expertos en Joda saben una mejor solución.
Añadido (gracias a @BasilBourque):
LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(date.dayOfWeek().getAsText());
java.time
En java.time ( JSR 310 , Java 8 y posteriores), use la enum DayOfWeek
.
int day = 2;
System.out.println( DayOfWeek.of(2).getDisplayName(TextStyle.FULL, Locale.ENGLISH) );
// Output: Tuesday
Puede usar una instancia de enumeración particular directamente en lugar de un número mágico como 2
. La enumeración de DayOfWeek
proporciona una instancia para cada día de la semana, como DayOfWeek.TUESDAY
.
System.out.println( DayOfWeek.TUESDAY.getDisplayName(TextStyle.FULL, Locale.ENGLISH) );
// Output: Tuesday
Viejo JDK
Para hacerlo completo, aquí la solución del antiguo JDK:
int day = 2;
DateFormatSymbols dfs = DateFormatSymbols.getInstance(Locale.ENGLISH);
System.out.println(dfs.getWeekdays()[day % 7 + 1]);
Tengo un número de día de la semana : 2 (que debe coincidir con el martes si la semana comienza el lunes).
De este número, ¿hay una manera de obtener el nombre del día en Java utilizando Joda Time? En javascript ha sido bastante fácil hacerlo usando moment.js:
moment().day(my number)
Puedes hacerlo por ti mismo
String[] dayNames = new String[]{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
String name = dayNames[day-1];
Y esto incluso no requiere ninguna biblioteca :)
Usando Joda puedes hacer esto:
DateTime curTime = new DateTime();
curTime.dayOfWeek().getAsText(Locale.ENGLISH);
Reemplace Locale
con lo que sea su Locale.
Debe devolver un nombre de día de la semana como Monday or Tuesday