Iphone 时间没有正确返回

Iphone 时间没有正确返回,iphone,ios5,nsdate,nsdateformatter,Iphone,Ios5,Nsdate,Nsdateformatter,我必须将字符串转换为日期。我正在使用日期格式化程序来做同样的事情 代码: NSString *stringDate = @"2010-06-21"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *theDate = [dateFormatter dateFromString:stringDate];

我必须将字符串转换为日期。我正在使用日期格式化程序来做同样的事情

代码:

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

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

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

NSDate *theDate = [dateFormatter dateFromString:stringDate];
这给了我上一个日期,而不是我通过的字符串日期。所以我试着使用时区

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
这给了我正确的日期,但时间不对

我只想要日期。如何在结果中获得正确的日期截断时间

提前感谢

试试这个-

dateOnlyFormatter = [[NSDateFormatter alloc] init];
[dateOnlyFormatter setDateFormat:@"yyyy-MM-dd"];
[dateOnlyFormatter setLocale:enUSPOSIXLocale];
[dateOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
显然,您请求的任何NSDate都有一个时间元素——您需要像这样使用日期格式化程序-

NSString *myDateAsString = [dateOnlyFormatter stringFromDate:theDate];
…然后您可以将字符串反馈给dateFormatter,以获得时间为零的NSDate-

NSDate *myNewDate = [dateOnlyFormatter dateFromString:myDateAsString];