2012-05-09 21 views
23
NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd-MM-YYYY HH:mm"];   
    [formatter setTimeZone:[NSTimeZone systemTimeZone]]; 

jeśli wybiorę „MM” i dostać po miesiącu, w liczbie: „09-05-2012 15:33” jeśli wybiorę „MMMM” Otrzymuję miesiąc w słowie: "09-maj-2012 15:33"NSDateFormatter „Miesiąc” w 3 litery zamiast pełnego wyrazu

Co chciałem, był miesiąc w 3 literach skrót.
Np .: "styczeń" będzie "Jan"

W tym przypadku maj jest poprawny, ponieważ ma tylko 3 litery.

+0

Użyj 'MMM' na krótką nazwę miesiąca – onmyway133

Odpowiedz

46

Czy próbowałeś: [formatter setDateFormat:@"dd-MMM-YYYY HH:mm"]; a następnie [formatter stringFromDate:someNSDate];

+3

M podaje mi numer M MM daje mi pełne słowo – bruno

+0

Hmm, dziwne, działa dla mnie ... – graver

+10

Może masz rację, próbuję z May. Powinieneś użyć innego miesiąca, ale jestem na symulatorze ... – bruno

1

Właściwie można ustawić dateStyle do podłoża (tj 'Jan', 'luty' etc) tak:

[formatter setDateStyle:NSDateFormatterMediumStyle]; 
24

jeśli masz dwa rzeczy w złej kolejności, nie otrzymasz oczekiwanego wyniku.

[formatter setDateFormat:@"MMM"]; 
[formatter setDateStyle:NSDateFormatterMediumStyle]; 

nie daje takie same wyniki jak:

[formatter setDateStyle:NSDateFormatterMediumStyle]; 
[formatter setDateFormat:@"MMM"]; 

(Drugi z tych dwóch fragmentów jest teraz szczęśliwie rozdawać wrz paź etc w moim app)

3

W SWIFT

let dateFormatter = NSDateFormatter() 

dateFormatter.dateFormat = "dd MMM yyyy HH:mm" 

dateFormatter.stringFromDate(NSDate()) 
Powiązane problemy