I've been racking my brains bez powodzenia. Może ktoś mi powiedzieć jak chciałbym przekonwertować ten ciąg:Jak zmienić NSString w NSDate?
"2011-01-13T17: 00: 00 + 11: 00"
do NSDate?
I've been racking my brains bez powodzenia. Może ktoś mi powiedzieć jak chciałbym przekonwertować ten ciąg:Jak zmienić NSString w NSDate?
"2011-01-13T17: 00: 00 + 11: 00"
do NSDate?
Unicode format daty doc jest here
również do sytuacji, można spróbować to:
// original string
NSString *str = [NSString stringWithFormat:@"2011-01-13T17:00:00+11:00"];
// convert to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// ignore +11 and use timezone name instead of seconds from gmt
[dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss'+11:00'"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]];
NSDate *dte = [dateFormat dateFromString:str];
NSLog(@"Date: %@", dte);
// back to string
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat2 setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"];
[dateFormat2 setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]];
NSString *dateString = [dateFormat2 stringFromDate:dte];
NSLog(@"DateString: %@", dateString);
[dateFormat release];
[dateFormat2 release];
Nadzieja to pomaga.
Dziękuję, to jest idealne. Strefa czasowa w pojedynczych cudzysłowach nie była oczekiwana, ale to ją naprawiło :) – jennas
nie mógł znaleźć "T" w środku. To pomogło. Dzięki! – user1244109
Czy spróbować to
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *dateT = [dateFormatter dateFromString:str];
Cheers
Cześć, tak mam to NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; NSDate * dateT = [dateFormatter dateFromString: @ "2011-01-13T17: 00: 00 + 11: 00"]; NSLog (@ "date From string:% @", dateT); To zwraca (zero) – jennas
To pomoże ci http://stackoverflow.com/questions/4655199/how-to-set-date-format-retrieved- from-uidatepicker/4655297#4655297 – Aditya
To jest złe, Nie działa w ogóle daje zerową datę. –
umieścić część T w apostrofach i sprawdzić dokumenty Unicode dla dokładnego formatowania. W moim przypadku mam coś podobnego, co robię:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSS"];
Znowu nie do końca taki sam, ale wpadł na pomysł. Należy również zachować ostrożność w strefach czasowych podczas konwersji w jedną i drugą stronę między łańcuchami i nsdates.
Ponownie, w moim przypadku, używam:
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"America/New_York"]];
Hi, im ustawienie [NSTimeZone systemTimeZone], która jest prawidłową strefą. Następujące nadal zwraca null bloody thing![dateFormatter setDateFormat: @ "rrrr-MM-dd'T'hh: mm: ssSSS"]; – jennas
To było dla mojego kodu, musisz zrobić coś podobnego do swojego kodu. Ponownie sprawdź dokumentację UNICODE. – tbone
Możesz sprawdzić TouchTime.
https://github.com/jheising/TouchTime.
To bezpośredni port niesamowitej funkcji strtotime w PHP w wersji 5.4 dla Cocoa i iOS. Potrwa prawie dowolny dowolny format ciągu daty lub czasu i przekształci go w NSDate.
Mam nadzieję, że działa i ciesz się!
Spróbuj użyć tego projektu z włączoną opcją cocoapods. Istnieje wiele dodatkowych funkcji, które prawdopodobnie będą również potrzebne.
"Kategoria rozszerzająca klasę NSDate firmy Cocoa z pewnymi wygodnymi funkcjami."
https://github.com/billymeltdown/nsdate-helper
Oto przykład z ich strony:
NSDate *date = [NSDate dateFromString:@"2009-03-01 12:15:23"];
Ponadto, przeważnie szukaj teraz dla narzędzi na cocoapods. Oto zapytanie na NSDate. http://cocoapods.org/?q=NSDate –
to sprawdzić: http://stackoverflow.com/questions/1353081/nsstring-to-nsdate – lms