NSDateFormatter dateFromString Gibt Immer nil
Ich entschuldige mich schonmal im Voraus für die Fragen wiederholen Sie die Frage, aber keine der anderen Lösungen haben bei mir funktioniert noch. Jedes mal, wenn ich versuchen, geben Sie einen Datums-string der dateFromString Funktion bekomme ich null. Ich habe nicht überall Lesen, dass die Dinge sich geändert haben, seit dem iOS 7 update, aber ich bin aktuelle auf updates, wenn das macht einen Unterschied, ob oder nicht, diese arbeitet immer noch die gleiche Weise.
Dies ist der code den ich zum erstellen des Datums von string:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[dateFormat setFormatterBehavior:NSDateFormatterBehaviorDefault];
NSDate *date = [[NSDate alloc] init];
date = [dateFormat dateFromString:dateString];
return date;
Ich habe meine dateFormat, basierend auf all den Lösungen, die ich gelesen habe, um dieses problem zu lösen, aber keiner von diesen Einstellungen gelöst haben, durch die problem. Die systemLocale ist definitiv für Englisch, so dass sollte nicht verursachen keine Probleme.
Dies ist der dateString ich bin vorbei, um dateFromString:
Wednesday, October 9, 2013 at 2:40:29 PM Pacific Daylight Time
Danke für die Hilfe!
InformationsquelleAutor Macros185 | 2013-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es hier zwei Probleme:
Das format von Datums-Zeichenfolge die formatter erwartet wird (
@"yyyy-MM-dd hh:mm:ss"
) unterscheidet sich von dem format der Datums-Zeichenfolge, die Sie versuchen zu analysieren (@"EEEE, MMMM d, yyyy 'at' h:mm:ss a zzzz"
).Einstellung der formatter Gebietsschema
[NSLocale systemLocale]
verursacht[dateFormat dateFromString:]
zurücknil
. Legen Sie es auf[NSLocate currentLocale]
.Den vollständigen code für das Formatierungsprogramm werden sollte:
Keine Sorge. In Fall müssen Sie möglicherweise, es in Zukunft hier ist eine Referenz für das Datum-format-Symbole. Auch, wenn Sie so freundlich wären und klicken Sie auf den kleinen Pfeil über der null neben meine Antwort, ich würde es zu schätzen wissen 🙂
Ich würde gerne up-gevotet, aber meine rep erlaubt mir nicht, um zu bewerten diese bis noch. Sorry...
Hmmm, ich hatte so viel Hoffnung für dieses! Meine Datums-Zeichenfolge ist
2016-03-14 13:41:47
mein dateFormat istyyyy-MM-dd hh:mm:ss
meine Zeit-zone & locale festgelegt sind, aber nochdateFromString:
gibt es nil zurück. 🙁Verwenden
yyyy-MM-dd HH:mm:ss
da Sie Ihre Zeit mit der 24-Stunden-Uhr. Wenn Sie möchten, 1am zu1:00
verwendenH:mm
. Wenn Sie wollen, dass es mit Nullen aufgefüllt also 01:00 UhrHH:mm
.InformationsquelleAutor neilco
Noch eine andere Möglichkeit, der null ist, wenn Sie
hh
und Ihre Stunden auf der 24-Stunden-Uhr und > 12, in diesem Fall müssen Sie dieHH
(oderH
für zero-padded).Ist:
Hat-tip to @neilco (siehe Kommentare unten seine Antwort). Wenn Sie diese Antwort bitte bis-Abstimmung sein, auch.
Arbeitete für mich auch.
InformationsquelleAutor Olie
Laut NSDateFormatter Dokumentation :
Wenn Sie das Datum-format ist
2017-06-16T17:18:59.082083Z
danndateFormat
Eigenschaft sollte so Aussehenyyyy-MM-dd'T'HH:mm:ss.SSSSSSZ
.Swift 3
yyyy-MM-dd'T'HH:mm:ss.ZZZZZ
format und es hielt Rücksendungnull
. Dann habe ich versucht, Ihre format-string und es funktionierte perfekt. Ich kann nicht glauben, dass mitss.ZZZZZ
nicht funktioniert, aber mitss.SSSSSSZ
funktioniert..... :/Ich hatte das gleiche Problem einmal froh, dass es funktionierte!
yyyy-MM-dd NICHT'HH:mm:ss.SSSSSSZ. Es wird gearbeitet, danke..
InformationsquelleAutor Chris Tsitsaris
Ihre Datumsformat entspricht nicht der string, den Sie übergeben haben, Ihre dateString sollte in diesem Format wie pro Ihren [dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
2013-10-09 02:40:29
null bedeutet dateFormat-Objekt wurde nicht analysiert werden Ihre string.
InformationsquelleAutor ManicMonkOnMac
Den Sie versuchen zu verwenden dateFromString aber das Format, das Sie bestanden haben, zu Ihrem Formatter ist anders, was Sie in dateString.
Versuchen, mit dieser config in Ihrem dateFormat:
E',' M d',' yyyy 'at' hh:mm:ss aa z
InformationsquelleAutor Davi Stuart