Ios NSDate时间问题
我从服务器上获得的值为2015-04-22 10:43:57,但在转换为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
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]];
有什么问题?你得到了什么输出?