2012-04-13 18 views
0

Ich muss eine Zeichenfolge zu Datum konvertieren. Ich benutze Datumsformatierer, um dasselbe zu machen.Zeit nicht korrekt zurückgegeben

Code:

NSString *stringDate = @"2010-06-21"; 

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

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

NSDate *theDate = [dateFormatter dateFromString:stringDate]; 

das gibt mir die früheren Zeitpunkt und nicht die Zeichenfolge Datum i übergeben. Also habe ich versucht, Zeitzone zu verwenden.

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 

das gibt mir das richtige Datum, aber die falsche Zeit.

Ich möchte nur die date. So erhalten Sie korrektes Datum und abgeschnittene Zeit im Ergebnis.

Dank im Voraus

Antwort

1

Try this -

dateOnlyFormatter = [[NSDateFormatter alloc] init]; 
[dateOnlyFormatter setDateFormat:@"yyyy-MM-dd"]; 
[dateOnlyFormatter setLocale:enUSPOSIXLocale]; 
[dateOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

Offensichtlich jede NSDate Sie fragen wird eine Zeit Element haben - Sie werden das Datum Formatierer wie so verwenden müssen -

NSString *myDateAsString = [dateOnlyFormatter stringFromDate:theDate]; 

... dann können Sie die Zeichenfolge zurück an dateFormatter übergeben, um ein NSDate mit Nullzeit zu erhalten -

NSDate *myNewDate = [dateOnlyFormatter dateFromString:myDateAsString];