2011-10-29 21 views
6

Estoy tratando uso Selector de fecha y en Seleccionar quiero mostrar la fecha en el siguiente formatoAndroid DatePicker nombre Mes pantalla

[Nombre del mes] [fecha], [año]

final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR)-13; 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

que da mes como un número. Cómo obtener el nombre del mes en lugar del número.

Respuesta

18
public static final String[] MONTHS = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 

utilizar una matriz y obtener la cadena de MONTHS[monthNumber].

+0

Estoy desconcertado de que esto no esté integrado en Android de forma predeterminada. – Mirko

+2

Hasta que se enteró de la localización ... – user802421

3

Utilice una sentencia switch:

String monthName; 
switch(mMonth){ 
    case Calendar.JANUARY: 
     monthName = "January"; 
     break; 
    case Calendar.FEBRUARY: 
     monthName = "February"; 
     break; 

etc.

+3

La respuesta de Yashwanth es mucho más simple. No sé por qué no pensé en eso de inmediato ... – NickLH

1

Ejemplo:

//if or swith 

if (c.get(Calendar.MONTH)==(Calendar.FEBRUARY)) { 

     // Do something like 

     // String Month = "FEBRUARY"; 


} 
4

Prueba esto:

final Calendar c = Calendar.getInstance(); 
    c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault()); 

salida será January si Mes == 1; O puede utilizar este

c.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault()); 

Entonces se obtiene Jan

+0

Gracias @pajus_cz –

1

Después de conseguir el año, mes y día, puede dar formato a la fecha de la siguiente manera:

DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM); 

DateFormat.MEDIUM hace que el fecha que se muestra como el 12 de enero de 1952, en el ejemplo. Si desea mostrar el nombre completo del mes, puede usar DateFormat.LONG.

Esta es la forma más fácil, en mi opinión.

2

Después de conseguir el año, mes y día, puede dar formato a la fecha de la siguiente manera:

DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM); 

DateFormat.MEDIUM hace que la fecha que se muestra como el 12 Ene de 1952, en el ejemplo. Si desea mostrar el nombre completo del mes, puede usar DateFormat.LONG.