时间没有正确退回

时间:2012-04-13 09:41:52

标签: iphone ios5 nsdate nsdateformatter

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

代码:

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"];

这给了我正确的日期但错误的时间。

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

提前致谢

1 个答案:

答案 0 :(得分:1)

试试这个 -

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];