3 Stimmen

Einstellen des UIDatePicker-Datums mit NSDateFormatter

Ich versuche, eine UIDatePicker mit einem Datum zu initialisieren, die mir von diesem Datum Picker früher in meiner Sitzung zurückgegeben wurde. Dies ist Teil eines Inventarprogramms, das das Datum abrufen muss, an dem ein Inventarobjekt zuletzt kalibriert wurde.

Mit diesem Code erhalte ich eine Zeichenkette mit Datum und Uhrzeit:

NSDate *choice = [pickedDate date];
calDate = [[NSString alloc] initWithFormat:@"%@", choice];

Ich erhalte die folgende Zeichenfolge in calDate: 2011-11-11 21:56:38 +0000

Ich versuche, meine Datumsauswahl mit dem folgenden Code einzustellen:

NSDate *date = [[[NSDate alloc] init] retain];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"cal date = %.@.",drawingInfo.drawingDate);
if([calDate length] != 0) {
    date = [dateFormatter dateFromString:calDate];

    if(date != nil) {
            [pickedDate setDate:date animated:NO];
    }
}

Das NSLog prüft, ob die Zeichenfolge noch intakt ist. Wenn ich bei if(date != nil) einen Haltepunkt setze, zeigt es mir, dass date = nil ist.

Vielen Dank im Voraus.

7voto

bryanmac Punkte 38186

Im Datumsformat fehlt die Angabe des Z-Formats.

Ce code :

NSString *calDate = @"2011-11-11 21:56:38 +0000";
NSDate *date = [[[NSDate alloc] init] retain];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];  
//                                   right here    ^

date = [dateFormatter dateFromString:calDate];

NSLog(@"date:%@", date);

Ausgänge:

2012-01-03 20:14:15.258 Craplet[38753:707] date:2011-11-11 21:56:38 +0000

Ohne das Z:

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

Sie gibt aus:

2012-01-03 20:16:10.456 Craplet[38885:707] date:(null)

Wenn das Format nicht mit der Datumszeichenfolge übereinstimmt, wird null zurückgegeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X