Na moim komputerze (ustawienia regionalne w Stanach Zjednoczonych) domyślny "krótki" format daty jest ustawiony na "1/5/13" (miesiąc/dzień/rok).Problem NSDateFormatter z numerami tygodni
W Preferencjach systemowych dodałem do niego numer tygodnia "1/5/13 1".
Mój problem jest ten kod, gdzie próbuję przekonwertować ciąg do daty:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [dateFormatter dateFromString:@"1/5/13 1"];
NSLog(@"Date: %@", date);
Na moim komputerze, to drukuje:
Date: 2000-01-01 05:00:00 +0000
To , która nie jest nawet blisko .
Co powoduje ten problem?
dlaczego klapka dodajesz ten numer? użyj nsdateformatter, aby go uzyskać. btw: powinieneś użyć '-dateFromString:'. Myślę, że powinieneś skonsultować się z dokumentami. http://developer.apple.com/library/ios/documentation/cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html – vikingosegundo
@vikingosegundo Zmieniłem kod, aby użyć 'dateFromString:', wynik jest taki sam.Nie chodzi o to, że dodaję ten numer tygodnia :) Chodzi o to, że moi ** użytkownicy ** dodali ten numer tygodnia w swoich Preferencjach systemowych, a moja aplikacja nie zamienia go na prawidłową datę. –
Zrobiłem to samo w preferencjach systemowych, a następnie ustawiłem formatownik o krótkim stylu, a następnie uruchomiłem 'NSString * dateString = [formatter stringFromDate: [NDate date]]; NSDate * parsedDate = [formatter dateFromSTring: dateString]; 'i zobaczył ten sam problem. 'dateString' został sformatowany zgodnie z moimi preferencjami, ale formater nie przetworzył poprawnie tego samego ciągu znaków! Próbowałem innych zmian w stylu i innych stylach oraz 'CFDateFormatter', z tym samym wynikiem! Być może to błąd ramowy? –