2012-04-09 18 views
-1

Ich habe ein Datum in NSString Format mit folgendem Inhalt: 29/02/2012 12.00.00NSDateFormatter Fehler von String-Umwandlung Datum

Ich versuche, es zu NSDate Objekt zu konvertieren, um Vergleiche anstellen zu können using:

Aber wenn ich dateFromString verwende: Methode erhalte ich einen Nullwert.

Was ich vermisse?

Danke.

-EDIT-

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:testQuestions.endDate]); 
    NSLog(@"INFO -> Test Date String: %@",testQuestions.endDate); 

    if ([[df dateFromString:testQuestions.endDate] earlierDate:[NSDate date]]) 
    { 
     currentTestIsBeingSolved = NO; 
    } 

Log:

2012-04-09 22:15:29.073 Otsuka On[27184:707] INFO -> Test Date: (null) 
2012-04-09 22:15:31.816 Otsuka On[27184:707] INFO -> Test Date String: 29/02/2012 12:00:00 AM 

EDIT--

Als @trudyscousin schlug ich ein neues Projekt begonnen haben und hinzugefügt, um diese:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:@"29/02/2012 12:00:00 AM"]); 
... 

Jetzt werde ich nicht null aber das Datum ist nicht das gleiche:

2012-04-09 22:26:19.189 TestDate[54705:207] INFO -> Test Date: 2012-02-28 23:00:00 +0000 

Was ist los mit den Daten?

Jede Konfiguration in Xcode?

Danke.

+0

Das Datum, gedruckt scheint direkt aus, weil es in GMT angezeigt wird (beachten Sie die Zeitzone '+ 0000' am Ende des Strings). Sehen Sie eine dieser Fragen: http://stackoverflow.com/search?q=%5Bobjc%5D+nsdate+off –

Antwort

3

Die Tatsache, dass Sie Datum und Uhrzeit mit "AM" suffigiert haben, ist, was es macht. Sie haben auch dafür sorgen:

@"dd/MM/yyyy hh:mm:ss a" 
+0

Hallo Danke für die Antwort. Ich habe das Format verwendet, wie du es vorgeschlagen hast, aber ich bekomme immer noch null. – NemeSys

+2

@NemeSys: Ich habe Ihren Code mit dem hinzugefügten Formatbezeichner ausgeführt und erfolgreich ein Datum erhalten: 'NSDateFormatter * df = [[NSDateFormatter Alloc] init]; [df setDateFormat: @ "TT/MM/JJJJ hh: mm: ss a"]; NSDate * foo = [df dateFromString: @ "29/02/2012 12:00:00 AM"]; NSLog (@ "% @", foo); ' – trudyscousin

+0

Ich habe alles zweimal überprüft und funktioniert immer noch nicht für mich. Ich kann es nicht verstehen, weil dein Code korrekt ist. Ich weiß nicht, warum er nicht für mich arbeitet. – NemeSys

Verwandte Themen