Iphone 如何使用NSDateFormatter将NSString转换为NSDate?

Iphone 如何使用NSDateFormatter将NSString转换为NSDate?,iphone,ios,nsstring,nsdate,nsdateformatter,Iphone,Ios,Nsstring,Nsdate,Nsdateformatter,我从网络服务中获得日期,如“2012-07-03 07:26:48”。从webservice解析后,我已保存在NSString中。将NSString转换为下面代码中使用的NSDate时 NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; NSString *dateStr = @"2

我从网络服务中获得日期,如“2012-07-03 07:26:48”。从webservice解析后,我已保存在NSString中。将NSString转换为下面代码中使用的NSDate时

    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    NSString *dateStr = @"2012-07-03 07:26:48";
    NSDate *date = [dateFormatter1 dateFromString:dateStr];
    NSLog(@"Date : %@", date);
   The NSLog value is "2012-07-03 01:56:48 +0000";

NSLog值为“2012-07-03 01:56:48+0000”;我不知道为什么时间变了。谁能帮我做这个

您必须设置
NSDateFormatter

的时区。您需要将时区设置为:

theDateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

因为它考虑的是GMT时间格式。

默认情况下,将字符串转换为nsdate时,日期以utc格式保存。。。您可以以字符串形式从日期获取原始时间。如果要更改时区,请使用dateformatter进行更改。。否则不要在印度改变。。但是为我们工作…你看到它在哪里有+0000吗?我想这意味着它显示的是GMT+0000,所以格林威治标准时间就好像你在英国一样。请不要发明单词(比如f.I.“u”)