2012-08-26 11 views
9

W mojej aplikacji używam interfejsu API Facebooka i kiedy pobieram dane użytkownika, otrzymuję datę urodzin użytkownika w postaci ciągu znaków w formacie MM/DD/RRRR.Konwertowanie ciągu znaków MM/DD/RRRR do NSDate

Moje pytanie brzmi: jak mogę przekonwertować ciąg "MM/DD/RRRR" na NSDate?

próbuję robić

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM/DD/YYYY"]; 
NSDate *date = [dateFormatter dateFromString:@"08/08/2012"]; 
[dateFormatter release]; 

Ale mam złą datę

Odpowiedz

14

Za pomocą NSDateFormatter można przekonwertować bezpośrednio z NSString na NSDate. Oto przykład:

NSDateFormatter* myFormatter = [[NSDateFormatter alloc] init]; 
[myFormatter setDateFormat:@"MM/dd/yyyy"]; 
NSDate* myDate = [myFormatter dateFromString:@"8/26/2012"]; 
NSLog(@"%@", myDate); 

Zobacz Unicode.org Szczegółowe informacje na temat wzorców formatowania daty.

1

dokładnie takich przypadkach NSDateFormatterexist.

+0

To naprawdę nie jest odpowiedzią, jak oryginalne pytanie odwołuje NSDateFormatter. –

+3

Nie było, gdy dałem tę odpowiedź. Został zredagowany po. – Matthias

+0

@ Matthias Czytam pytanie przed edycją .. hahaha co za zwrot na pytanie: D twoja odpowiedź jest idealnie poprawna zgodnie z tym pytaniem, więc +1 z mojej strony dla ciebie. –

3

Robisz wszystko dobrze. Twoim problemem jest tylko ciąg formatujący.

  • Kapitał M jest miesiącem.
  • Mały d jest dzień.
  • Małe y jest rokiem.

Po prostu używaj tych symboli konsekwentnie i powinieneś mieć się dobrze.

5

Dodaj [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]

+0

Dziękuję, oszczędzasz mi trochę czasu !!!!! – StuartM

+0

Dzięki człowieku, dokładnie to czego mi brakowało :) – sachadso

Powiązane problemy