Ios NSDate时间问题

Ios NSDate时间问题,ios,objective-c,Ios,Objective C,我从服务器上获得的值为2015-04-22 10:43:57,但在转换为NSDate时遇到问题。我想将相同的数据转换成NSDate格式,格式与NSString中给出的格式相同。这是我的密码 // getting from server NSString *dateString=@"2015-04-22 10:43:57"; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateForm

我从服务器上获得的值为2015-04-22 10:43:57,但在转换为
NSDate
时遇到问题。我想将相同的数据转换成
NSDate
格式,格式与
NSString
中给出的格式相同。这是我的密码

// getting from server

NSString *dateString=@"2015-04-22 10:43:57"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *aDate = [dateFormat dateFromString:dateString]; 
如果我将获得带有时区的dateString,那么它将被解析。

您的代码看起来是正确的。 我想您在格式化时遇到了时区问题。您可以将它添加到NSDateFormatter中,以指定输入日期是否来自特定时区

// set date format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
请使用下面的代码

NSString *dateString=@"2015-04-22 10:43:57";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone* localTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
dateFormat.timeZone=localTimeZone;
NSDate *aDate = [dateFormat dateFromString:dateString];
输出:2015-04-22 10:43:57+0000


希望对你有帮助

您的代码是正确的。您只需尝试将这一行添加到代码中

//This will set time zone of your device.You can change systemTimeZone to localTimeZone based on your need.

[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];

有什么问题?你得到了什么输出?