2013-07-31 9 views
6

Mój format daty to "yyyy-MM-dd", a gdy otrzymuję miesiąc za pomocą tej funkcji, zwracany jest nieprawidłowy format miesiąca. Na przykład zamiast „lipiec” zwróci mi tylko „J”Android 4.3 jelly Bean Format czasu wydania

Oto funkcja:

public static String getMonthName(String date) { 

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

} 

Andy pomysł, co robić?

Edit: i tu jest moje parseDate(String date) funkcja

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

Jakiej kultury używasz? –

+0

** Nigdy ** polegać na domyślnym kodowaniu i domyślnych ustawieniach regionalnych. ** Nigdy. ** Podczas analizowania daty (lub nawet liczb zmiennoprzecinkowych, jako dziesiętnych może być inna), należy ** zawsze ** jawnie określać właściwy format. – ppeterka

+0

Używam domyślnych ustawień narodowych –

Odpowiedz

5

myślę, że masz jedno M znacznie

M: 1 MM: 01 MMM: Jan MMMM: Styczeń MMMMM: J

+0

Tak, to był problem. ;) ale tutaj jest to dokument dla uproszczonego formatu, a zobaczysz tam pięć "M": _ http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

+1

Tak, ale: M: 1 ..... MMMMM: J w dokumentacji Androida http://developer.android.com/reference/java/text/SimpleDateFormat.html – Flaxie

+2

Wzory pięciocyfrowe (takie jak "MMMMM") używane do najkrótsza nieliczbowa reprezentacja pola została wprowadzona w Jelly Bean MR2 (poziom API 18). – Flaxie

Powiązane problemy