2011-04-27 17 views
7

Quiero saber el día de la fecha en Java para una fecha como 27-04-2011.Encontrar el día de una fecha en Java

Traté de usar esto, pero no funciona:

Calendar cal = Calendar.getInstance(); 
int val = cal.get(Calendar.DAY_OF_WEEK); 

Se da el valor entero, no la salida de cuerdas que quiero. No estoy obteniendo el valor correcto que quiero. Por ejemplo, me está dando el valor 4 para la fecha 28-02-2011 donde debería ser 2 porque el domingo es el primer día de la semana.

Respuesta

9

Sí, lo solicitó para el día de la semana, y el 28 de febrero fue Monday, day 2. Tenga en cuenta que en el código que ha proporcionado, en realidad no está configurando la fecha en cualquier lugar; solo está usando la fecha actual, que es un miércoles, por eso está obteniendo 4. Si pudiera mostrar cómo Estamos tratando de establecer el calendario en una fecha diferente (por ejemplo, el 28 de febrero), podemos averiguar por qué eso no está funcionando para usted.

Si desea formatearlo como texto, puede usar SimpleDateFormat y el especificador "E". Por ejemplo (no probado):

SimpleDateFormat formatter = new SimpleDateFormat("EEE"); 
String text = formatter.format(cal.getTime()); 

Personalmente me gustaría evitar el uso de Calendar por completo, aunque - utilizar Joda Time, que es una API de fecha y hora muy superior.

+0

si me dan un ejemplo del uso SimpleDateFormat aquí, que sería muy útil para mí. – riyana

+0

@riyana: He agregado una muestra, pero realmente * lo animo * a que use Joda Time. –

+0

@JonSkeet: +1 como respuesta, estaba buscando lo mismo. – Zoombie

1

Consulte el JavaDoc del campo DAY_OF_WEEK. Apunta a 7 constantes SUNDAY..SATURDAY que muestran cómo decodificar el valor de retorno int de cal.get (Calendary.DAY_OF_WEEK). ¿Está seguro de que

Calendar cal = Calendar.getInstance(); 
cal.set(2011, 02, 28); 
cal.get(Calendar.DAY_OF_WEEK); 

devuelve el valor incorrecto para usted?

+0

Puedo asegurarle que esto está funcionando;) scala> import java.util.Calendario Scala> val cal = Calendar.getInstance() Scala> cal.set (2011, 02, 28) Scala> cal.get (Calendar.DAY_OF_WEEK) res1: Int = 2 –

1

seguir los siguientes pasos:

Calendar cal=Calendar.getInstance(); 
    int val = cal.get(Calendar.DAY_OF_WEEK); 
    System.out.println(new DateFormatSymbols().getWeekdays()[val]); 

o

Calendar cal=Calendar.getInstance(); 
    String dayName = new DateFormatSymbols().getWeekdays()[cal 
      .get(Calendar.DAY_OF_WEEK)]; 
    System.out.println(dayName); 
1
Calendar cal=Calendar.getInstance(); 
    cal.set(2011, 2, 28); 
    int val = cal.get(Calendar.DAY_OF_WEEK); 
    System.out.println(val); 
3
Calendar cal=Calendar.getInstance(); 
System.out.println(new SimpleDateFormat("EEE").format(cal.getTime())); 

salida

Wed 

Ver también

+0

muchas gracias :) Usted – riyana

+0

son bienvenidos :) –

3
String dayNames[] = new DateFormatSymbols().getWeekdays(); 
    Calendar date1 = Calendar.getInstance(); 
    System.out.println("Today is a " 
    + dayNames[date1.get(Calendar.DAY_OF_WEEK)]); 
Cuestiones relacionadas