¿Cómo determinar el día de la semana pasando una fecha específica?
Por ejemplo, tengo la fecha: "23/2/2010" (23 de febrero de 2010). Quiero pasarlo a una función que devuelva el día de la semana . ¿Cómo puedo hacer esto?
En este ejemplo, la función debería devolver String
"Mar".
Además, si solo se desea el ordinal del día, ¿cómo se puede recuperar?
Sí. Dependiendo de su caso exacto:
Puedes usar
java.util.Calendar
:Calendar c = Calendar.getInstance(); c.setTime(yourDate); int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
si necesita que el resultado sea
Tue
en lugar de 3 (los días de la semana se indexan comenzando en 1 para el domingo, consulte Calendar.SUNDAY), en lugar de revisar un calendario, simplemente vuelva a formatear la cadena:new SimpleDateFormat("EE").format(date)
(EE
que significa "día de la semana, versión corta" )Si tiene su entrada como cadena, en lugar de
Date
, debe usarlaSimpleDateFormat
para analizarla:new SimpleDateFormat("dd/M/yyyy").parse(dateString)
puedes usar joda-time's
DateTime
y llamardateTime.dayOfWeek()
y/oDateTimeFormat
.editar: desde Java 8 ahora puedes usar el paquete java.time en lugar de joda-time
String inputDate = "01/08/2012";
SimpleDateFormat format1 = new SimpleDateFormat("dd/MM/yyyy");
Date dt1 = format1.parse(input_date);
DateFormat format2 = new SimpleDateFormat("EEEE");
String finalDay = format2.format(dt1);
Utilice este código para encontrar el nombre del día a partir de una fecha de entrada. Simple y bien probado.