Frage

In meinem Projekt ich bin immer "2008-02-01T10: 03: 23,793 bis 06: 00" das Datumsformat in String-i in NSDate umwandeln muß ich bin mit

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

NSDate* dateFromString = [dateFormatter dateFromString:@"2008-02-01T10:03:23.793-06:00"];

Aber wenn ich am Druckdatum Wert mit NSLog ich bin immer Wert als null.

Bitte helfen Sie mir

Danke

War es hilfreich?

Lösung

NSDateFormatter nicht in der Lage sein, es zu analysieren, weil die Zeitzone nicht mit RFC 822 oder GMT Standard . Das Problem ist auf der letzten „:“., Um es Ihnen die „GMT“ benötigen

Das Datum, dass Sie respektiert die RFC 3339 haben.

Sie müssen eine NSFormatter verwenden, um es zu analysieren. Sie sollten getObjectValue:forString:errorDescription:

Stellen Sie die Zeichenfolge @"yyyy-MM-dd'T'HH:mm:ss.SSSZ".

Andere Tipps

    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
[formatter setLenient:YES];
NSString* buggeredTime = [[sourceDate substringToIndex:26] stringByAppendingString:[sourceDate substringFromIndex:27]];
NSDate* dueDate = [formatter dateFromString:buggeredTime];
[formatter setDateFormat:@"'Time Due: 'hh:mm a  MM/dd/yy"];
NSString* dateString = [formatter stringFromDate:dueDate];
[formatter release];

(Weiß nicht ohne Weiteres, wenn der setLenient benötigt wird.)

Just Gebrauch, dass statt (man beachte das "ZZZ" anstelle von "Z"):

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];

Ich glaube, Sie brauchen auch ein Gebietsschema für den Formatierer einzustellen. Werfen Sie einen Blick hier

Google GData Objective-C-Client hat eine Klasse (GDataDateTime), die RFC 3339 Daten analysieren kann.

http: // code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/Elements/GDataDateTime.m

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top