2013-07-31 20 views
6

Tarih formatım bu "yyyy-MM-dd" şeklindedir ve bu işlevi kullanarak ayı aldığımda bana ayın yanlış formatını döndürür. ne yapacağınıAndroid 4.3 jelly Bean Saat biçimi sorunu

public static String getMonthName(String date) { 

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

} 

andy fikir: yerine Örneğin "Temmuz" bana sadece "J" Burada

işlevdir dönmek?

Düzenleme: ve burada parseDate(String date) fonksiyon

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

Hangi kültürü kullanıyorsunuz? –

+0

** Asla varsayılan kodlamaya ve varsayılan yerel ayarlara güvenmeyin. ** Asla. ** Ayrıştırma tarihi (veya ondalık sayı farklı olabilir, ondalık farklı olabilir), ** her zaman açıkça ** uygun biçimi belirtmelisiniz. – ppeterka

+0

Varsayılan yerel ayar –

cevap

5

seni çok

M tek M var: 1'dir DD: 01 MMM: Jan AAAA: Ocak mmmmm: J

+0

Evet, sorun buydu. ;) ama burada basit bir tarih biçimi için belge var ve orada beş tane 'M' olduğunu görebilirsiniz: _ http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

+1

Evet ama: M: 1 ..... MMMMM: Android dokümanda J http://developer.android.com/reference/java/text/SimpleDateFormat.html – Flaxie

+2

Beş sayı düzeni ("MMMMM" gibi) Bir alanın en kısa sayısal olmayan temsili, Jelly Bean MR2'de (API 18 seviyesi) tanıtılmıştır. – Flaxie

İlgili konular