2012-08-24 14 views
22

Sorunun ne olduğundan emin değil, "Temmuz" ay adı almak yerine "07" aldım.Tam ay adını göstermeyen NSDateFormatter, yalnızca tek basamaklı sayı

dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setLocale:[NSLocale systemLocale]]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];  
[dateFormat setDateFormat:@"MMMM dd, h:mm a"]; 

Ben M, MM, MMM, MMMM denedim ve hepsi lider 0s farklı miktarlarda olsa yerine aylık adının, bana bir numara ver.

+0

Bu çizginin sorun olduğunu düşünüyorum .. [dateFormat setLocale: [NSLocale systemLocale]]; systemLocale 'i kullanmak için amacınız nedir bilmiyorum ama' systemLocale' yerine 'currentLocale' deneyebilirsiniz – ila

cevap

45

İkinci satır olan setLocale ile ilgili bir sorun ortaya çıkıyor. locale el ile ayarlandığında, sistemin ingilizce ay isimlerini kullanmayacağı varsayılan varsayılır mı? Ben ingilizce konuşan bir locale yaşıyorum, ama belki önemli değil.

Her durumda, yerel ayarı ayarlama, ay adı sorununu giderir.

dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];  
[dateFormat setDateFormat:@"MMMM dd, h:mm a"]; 
7

-systemLocale burada ne yapmak istediğinizi değil. Başka bir yerel ayar uymuyorsa geri dönüş yerel ayarını döndürür. Kullanıcının geçerli yerel ayarını almak için -currentLocale kullanın. Ayrıca

:
Doğru tarih biçimini almak için NSDateFormatter 'ın +dateFormatFromTemplate:options:locale: yöntemi kullanmalısınız. Bazı dillerde gün, ay, vs.'den önce gelir ve bunun tersi de geçerlidir.