Ich habe mein Gehirn ohne Glück zerschlagen. Könnte mir bitte jemand sagen, wie ich diese Zeichenfolge konvertieren würde:Wie wird ein NSString in NSDate umgewandelt?
"2011-01-13T17: 00: 00 + 11: 00"
in eine NSDate?
Ich habe mein Gehirn ohne Glück zerschlagen. Könnte mir bitte jemand sagen, wie ich diese Zeichenfolge konvertieren würde:Wie wird ein NSString in NSDate umgewandelt?
"2011-01-13T17: 00: 00 + 11: 00"
in eine NSDate?
Die Unicode-Datumsformat doc here
ist auch für Ihre Situation, könnte man dies versuchen:
// 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];
Hoffnung das hilft.
Danke das ist perfekt. Die Zeitzone in einfachen Anführungszeichen wurde nicht erwartet, aber was wurde behoben :) – jennas
konnte nicht herausfinden, dass 'T' in der Mitte. Das hat also geholfen. Vielen Dank! – user1244109
Haben Sie versucht, diese
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *dateT = [dateFormatter dateFromString:str];
Prost
Hallo, Ja, ich habe diese NSDateFormatter * DatumFormatter = [[NSDateFormatter Alloc] Init]; NSDate * dateT = [DatumFormatter dateFromString: @ "2011-01-13T17: 00: 00 + 11: 00"]; NSLog (@ "date From string:% @", dateT); Dies gibt (null) – jennas
Dies wird Ihnen helfen http://stackoverflow.com/questions/4655199/how-to-set-date-format-retrieved-from-uidatepicker/4655297#4655297 – Aditya
Dies ist falsch, funktioniert nicht überhaupt, gibt nil date. –
die T Teil in einfache Anführungszeichen setzen, und überprüfen Sie die Unicode-Dokumentation für die genaue Formatierung. In meinem Fall habe ich etwas ähnliches, was ich das mache:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSS"];
Nochmal nicht genau dasselbe, aber man kommt auf die Idee. Achten Sie auch auf die Zeitzonen beim Konvertieren zwischen Strings und Nsdates.
Auch in meinem Fall verwende ich:
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"America/New_York"]];
Hallo, ich setze [NSTimeZone systemTimeZone] welche die richtige Zone ist. Das Folgende gibt immer noch null verdammtes Ding zurück![dateFormatter setDateFormat: @ "jjjj-MM-dd'T'hh: mm: ssSSS"]; – jennas
Das war für meinen Code, Sie müssen etwas ähnliches für Ihren Code tun. Überprüfen Sie erneut die UNICODE-Dokumente. – tbone
Sie können TouchTime ausprobieren.
https://github.com/jheising/TouchTime.
Es ist ein direkter Port der fantastischen strtotime Funktion in PHP in 5.4 für Cocoa und iOS. Es nimmt so ziemlich jedes willkürliche Datums- oder Zeitformat an und konvertiert es in ein NSDate.
Hoffe es funktioniert, und viel Spaß!
Versuchen Sie, dieses Cocoapods-fähige Projekt zu verwenden. Es gibt viele zusätzliche Funktionen, die wahrscheinlich auch benötigt werden.
"Eine Kategorie, um Cocoas NSDate Klasse mit einigen Komfortfunktionen zu erweitern."
https://github.com/billymeltdown/nsdate-helper
Hier ist ein Beispiel von ihrer Seite:
NSDate *date = [NSDate dateFromString:@"2009-03-01 12:15:23"];
Suchen Sie auch meistens nach Utilities auf Cocoapoden. Hier ist die Abfrage zu NSDate. http://cocoapods.org/?q=NSDate –
Check this out: http://stackoverflow.com/questions/1353081/nsstring-to-nsdate – lms