2013-07-31 12 views
6

Il mio formato di data è questo "aaaa-MM-gg" e quando ottengo il mese utilizzando questa funzione restituisco il formato errato del mese. Per esempio, invece di "Luglio" è tornare a me solo "J"Edizione 4.3 di Android Bean Time in formato Bean

qui è la funzione:

public static String getMonthName(String date) { 

    Date mDate = Utils.parseDate(date); 
    SimpleDateFormat sdf = new SimpleDateFormat("MMMMM"); 
    String time = sdf.format(mDate); 
    return time; 

} 

Andy idea di cosa fare?

Edit: ed ecco la mia parseDate(String date) funzione

public static Date parseDate(String date) { 
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      return formatter.parse(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
      return new Date(); 
     } 
    } 
+0

Che cultura stai usando? –

+0

** Mai ** si basano sulla codifica predefinita e sulle impostazioni internazionali predefinite. ** Mai. ** Quando si analizza la data (o anche i numeri in virgola mobile, poiché il decimale potrebbe essere diverso), si dovrebbe ** sempre ** specificare esplicitamente il formato corretto. – ppeterka

+0

sto usando le impostazioni internazionali predefinite –

risposta

5

Credo che bisogna uno M per molto

M: 1 MM: 01 MMM: Jan MMMM: gennaio MMMMM: J

+0

Sì, questo era il problema. ;) ma qui il doc per simpledateformat, e puoi vedere che ci sono cinque 'M' lì: _ http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

+1

Sì ma: M: 1 ..... MMMMM: J nella documentazione di Android http://developer.android.com/reference/java/text/SimpleDateFormat.html – Flaxie

+2

Pattern a cinque punti (come "MMMMM") usati per la più breve rappresentazione non numerica di un campo è stata introdotta in Jelly Bean MR2 (livello API 18). – Flaxie

Problemi correlati