Ios NSDateFormatter不正确的日期转换

Ios NSDateFormatter不正确的日期转换,ios,iphone,nsdate,nsdateformatter,Ios,Iphone,Nsdate,Nsdateformatter,我正在使用NSDateFormatter将NSString转换为NSDate 例如,如果我的NSString值为2015年6月24日,则转换为2015-06-23 18:30:00+0000,这是不正确的 它应该是“24”而不是“23” 我正在使用下面的代码进行转换 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MMM dd,yyyy"]; NSLog(@"%@",[

我正在使用NSDateFormatter将NSString转换为NSDate

例如,如果我的NSString值为2015年6月24日,则转换为2015-06-23 18:30:00+0000,这是不正确的

它应该是“24”而不是“23”

我正在使用下面的代码进行转换

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd,yyyy"];
NSLog(@"%@",[formatter dateFromString:strDate]);
请帮我解决这个问题


谢谢

添加
NSTimeZone的行

   NSString *dateString = @"Jun 24,2015";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd,yyyy "];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSLog(@"%@",[dateFormatter dateFromString:dateString]);

添加
NSTimeZone的行

   NSString *dateString = @"Jun 24,2015";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd,yyyy "];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSLog(@"%@",[dateFormatter dateFromString:dateString]);

这可能对你有所帮助。添加以下代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

这可能对你有所帮助。添加以下代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

您的
NSDateFormatter
将该值作为本地日期格式(IST,GMT+5:30),然后将其转换为GMT。它将您的值作为2015年6月24日上午00:00,并根据GMT 18:30进行转换,2015年6月23日意味着比实际时间早5小时30分钟,因此只需添加

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

它可以正常工作。

您的
NSDateFormatter
将值转换为本地日期格式(IST,GMT+5:30),然后将其转换为GMT。将值转换为2015年6月24日上午00:00,并根据GMT 18:30将其转换为2015年6月23日意味着比实际时间早5小时30分钟,因此只需添加

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

它会很好地工作。

我正在使用的代码与您建议的代码没有区别。请参阅我的更新答案它的完美工作@ArvinderSingh我正在使用的代码与您建议的代码没有区别。请参阅我的更新答案它的完美工作@ArvinderSingh