¿Cómo determinar el día de la semana pasando una fecha específica?

Resuelto evilReiko asked hace 13 años • 29 respuestas

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?

evilReiko avatar Mar 11 '11 14:03 evilReiko
Aceptado

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 Tueen 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)( EEque significa "día de la semana, versión corta" )

  • Si tiene su entrada como cadena, en lugar de Date, debe usarla SimpleDateFormatpara analizarla:new SimpleDateFormat("dd/M/yyyy").parse(dateString)

  • puedes usar joda-time's DateTimey llamar dateTime.dayOfWeek()y/o DateTimeFormat.

  • editar: desde Java 8 ahora puedes usar el paquete java.time en lugar de joda-time

Bozho avatar Mar 11 '2011 07:03 Bozho
  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.

JDGuide avatar Aug 01 '2012 11:08 JDGuide